4

自動インクリメント キーを持つ mysql テーブルがあります。挿入する行がテーブルに含まれていない場合にのみ、そのテーブルに挿入する方法が必要です。INSERT IGNORE および INSERT ON DUPLICATE KEY UPDATE は機能しません。これは、自動インクリメント キーによって行が常に異なるためです。重複する行がない場合にのみ、次の行を挿入できる別の方法は何ですか? ありがとう。

INSERT INTO TableName (column1, column2, column3) VALUES ("value1", "value2", "value3");
4

2 に答える 2

5

UNIQUE一意にする必要がある列、または列の組み合わせに制約を設定します。

例えば:

ALTER TABLE `TableName`
ADD UNIQUE `constrain_me` (`column1`, `column2`);

重複挿入によって発生する可能性のあるエラーを無視したい場合は、 を使用INSERT IGNOREします。

于 2012-06-27T21:41:22.620 に答える
1

複製したくないフィールドに一意のインデックスを作成できます。

CREATE UNIQUE INDEX MyIndex ON column1

このように、重複する値が追加されると、クエリはエラーになります。このメソッドではNULL値を追加できることにも注意してください(つまり、NULLのcolumn1値を持つ2つの行は重複としてカウントされません)

于 2012-06-27T21:45:43.230 に答える