0

MYSQL で "INSERT IGNORE ..." を実行して、複数のオプションのテーブルに変数を 1 つだけ追加しようとすると、最初の挿入後に動作が拒否されます。「挿入された行: 0」と表示され、新しい値がデータベースに挿入されません。これは、「何もない」値を持つエントリが既に存在し、MYSQL が空のフィールドの複製を許可していないためだと思います。これは (2 つの挿入がまったく同じではない限り) 奇妙な動作のように思われるので、これを回避する方法があるかどうか疑問に思っています。

4

1 に答える 1

2

2 つINSERTが完全に同じである必要はありません。主キー列が同じである必要があります。

INSERT IGNORE同じ主キーを持つ行が既に存在する場合、挿入は無視されます。INSERTの代わりに実行すると、エラーが発生しますINSERT IGNORE(主キーが重複しています)。

代わりに既存の行を更新する場合は、 を使用できますREPLACE

どちらの方法でも、主キーごとに 1 つの行しか存在できません。

于 2010-01-09T03:28:01.200 に答える