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

MySQLは、列の組み合わせ(重複を許可する)が一意である場合にのみ新しい行を挿入します

    複合一意インデックスを作成します。これにより、個々のフィールドで任意の数の複製が可能になりますが、組み合わせは一意である必要があります。

    CREATE UNIQUE INDEX ix_uq ON test (field1, field2, field3);
    

    ...そしてINSERT IGNOREを使用します 一意のインデックスに違反していない場合に挿入します。そうである場合は、挿入を無視してください。

    INSERT IGNORE INTO test (field1,field2,field3) VALUES (1,1,1);
    

    テスト用のSQLfiddle

    重複がない限り挿入し、重複がある場合は更新する場合は、INSERT INTO ... ON DUPLICATE KEY UPDATEを使用することもできます。;

    INSERT INTO test (field1, field2, field3) VALUES (1,1,1)
      ON DUPLICATE KEY UPDATE field4=field4+1;
    

    別のSQLfiddle




    1. PHPでの郵便番号間の距離の計算

    2. MysqlCSVロードインファイル

    3. 外部キーの制約により、MySQLテーブルを削除できません

    4. Mysqlのさまざまな条件からの行を合計する