sql >> データベース >  >> RDS >> Mysql

MySQL-値のペアを一意にする

    複合キーと呼ばれます。

    実際のPKを複合PKに変更する場合は、

    を使用します。
    Alter table <your table> drop PRIMARY KEY;
    Alter table <your table> drop COLUMN <your autoincremented column>;
    
    Alter table <your table> add [constraint <constraint name>] PRIMARY KEY (<col1>, <col2>);
    

    一意の制約を追加することもできます(PKは同じで、一意のペアは...一意である必要があります)。

    alter table <your table> add [constraint <constraint name>] unique index(<col1>, <col2>);
    

    個人的には、2番目のソリューション(単純なPK +一意の制約)をお勧めしますが、それは個人的な観点にすぎません。複合キーに関する賛否両論をグーグルで検索できます。

    []の間の部分 オプションです。

    編集

    createtableステートメントでこれを実行したい場合

    複合pkの場合

    CREATE TABLE Test(
        id1 int NOT NULL, 
        id2 int NOT NULL,
        id3 int NOT NULL,
        PRIMARY KEY (id1, id2)
    );
    

    一意のインデックスの場合

    CREATE TABLE Test1(
        id1 int NOT NULL AUTO_INCREMENT, 
        id2 int NOT NULL,
        id3 int NOT NULL,
        PRIMARY KEY (id1),
        UNIQUE KEY (id2, id3)
    );
    


    1. リレーショナルデータベースと非リレーショナルデータベース–パート2

    2. Hibernate_sequenceテーブルが生成されます

    3. mysqlでINDEXESを使用する最大の利点は何ですか?

    4. MySQLでソース-レプリカレプリケーションを構成する方法