ホームページ > データベース > mysql チュートリアル > 2 つの別々の自動インクリメント列を持つリレーショナル テーブルを作成するにはどうすればよいですか?

2 つの別々の自動インクリメント列を持つリレーショナル テーブルを作成するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-06 08:16:40
オリジナル
227 人が閲覧しました

How Can I Create a Relational Table with Two Separate Auto-Incrementing Columns?

SQL: 2 つの異なる自動インクリメントを使用したリレーショナル テーブルの作成

問題:

2 つの自動インクリメント列を持つリレーショナル テーブルを作成したいのですが、エラー。

説明:

複数の自動インクリメント列を持つリレーショナル テーブルを確立しようとした試みは、主キーの概念の誤解に基づいています。

キー概念:

  • 主キー: テーブル内の各行を識別する一意の識別子。
  • 自動インクリメント:指定された値に対して一意の値を自動的に生成する機能列。

間違い:

  • ID 列を主キーとして割り当てています。
  • ID 列が行を提供すると仮定します。独自性、それが実現する

解決策:

  1. 余分な ID フィールドを削除します: 不要な ID 列を両方のテーブルから削除します。行の識別用。
  2. 行を宣言uniqueness: 名前フィールドの組み合わせなど、データ派生キーに一意の制約を作成して、行の一意性を強制します。例:
CREATE TABLE relational_table (
    name_first CHAR(30), 
    name_last  CHAR(30),
    CONSTRAINT PK
        PRIMARY KEY ( name_last, name_first )
    )
ログイン後にコピー
  1. 連想テーブルの作成: 2 つのテーブル間の関係を確立するには、両方のテーブルの主キーを次のように使用する連想テーブルを作成します。主キー。例:
CREATE TABLE user_sport (
    user_name  CHAR(16) NOT NULL,   -- FK
    sport_code CHAR(4)  NOT NULL,   -- FK
    start_date DATE     NOT NULL,

    CONSTRAINT PK 
        PRIMARY KEY ( user_name, sport_code )
    )
ログイン後にコピー
  1. auto-inc ステートメントを削除します: リレーショナル テーブルには自動インクリメントは必要なく、混乱を招く可能性があります。

の利点削除:

  • 行の一意性を強制します。
  • データの整合性を向上します。
  • 重複レコードを削除します。
  • 外部キー関係を簡素化します。

以上が2 つの別々の自動インクリメント列を持つリレーショナル テーブルを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート