ホームページ >データベース >mysql チュートリアル >MySQL で条件付き INSERT を実行して一意の行を確保する方法

MySQL で条件付き INSERT を実行して一意の行を確保する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-13 05:40:13243ブラウズ

How to Perform a Conditional INSERT in MySQL to Ensure Unique Rows?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。