MySQL 条件付き挿入: 一意の場合のみ挿入
MySQL は、条件付き挿入の限定的なサポートを提供します。この特定のケースでは、ユーザーと項目の組み合わせが存在しない場合にのみ、x_table に行を挿入することを目的としています。
MySQL の INSERT ステートメントでは、条件付きで直接挿入できません。ただし、サブクエリを使用して回避策を採用できます。 1 つの方法は、NOT EXISTS 句を使用することです。
INSERT INTO x_table (instance, user, item) SELECT 919191, 123, 456 FROM dual WHERE NOT EXISTS ( SELECT * FROM x_table WHERE user = 123 AND item = 456 );
このクエリでは、NOT EXISTS を指定したサブクエリは、指定されたユーザーと項目が x_table に既に存在するかどうかを確認します。そうでない場合は、新しい行が挿入されます。それ以外の場合は、何も起こりません。
もう 1 つのオプションは、MERGE ステートメントを利用することです。これにより、条件付き挿入および更新操作を 1 つのステートメントで指定できます。ただし、MERGE は、コア機能の一部としてではなく、拡張機能としてのみ MySQL でサポートされています。
以上がMySQL で条件付き INSERT を実行して一意の行を確保する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。