ホームページ > データベース > mysql チュートリアル > MySQL にデータを挿入するときに一意の行を確保するにはどうすればよいですか?

MySQL にデータを挿入するときに一意の行を確保するにはどうすればよいですか?

DDD
リリース: 2024-12-25 21:27:09
オリジナル
770 人が閲覧しました

How to Ensure Unique Rows When Inserting Data into MySQL?

MySQL の条件付き挿入: 行の一意性の確保

MySQL はデータ挿入のための多用途のメカニズムを提供しており、行の重複を防ぐ条件付き挿入を実装できます。

1 つのシナリオには、instance、user、および item の列を持つ x_table という名前のテーブルが含まれます。ここで、instance は一意です。ユーザーと項目の組み合わせがまだ存在しない場合にのみ、新しい行を x_table に挿入するには、次の手順に従います。

INSERT...SELECT 構文の使用

MySQL バージョンが選択をサポートしている場合挿入中に他のテーブルからデータを取得するには、次のクエリを検討してください。

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
);
ログイン後にコピー

このクエリでは、dual は有効なテーブルの可用性を保証する単一行のテーブルです。一方、NOT EXISTS 条件は重複する行がないかどうかをチェックします。一致するものが見つからない場合は、新しい行が挿入されます。

MERGE ステートメントの詳細

また、MERGE ステートメントは、条件付き挿入のための強力なツールを提供します。その構文は次のとおりです。

MERGE INTO x_table AS target
USING (
    SELECT 919191 AS instance, 123 AS user, 456 AS item
) AS source
ON (target.user = source.user AND target.item = source.item)
WHEN NOT MATCHED THEN INSERT VALUES (source.instance, source.user, source.item);
ログイン後にコピー

この場合、USING 句は挿入する値を指定し、ON 句は一致基準を確立します。対象テーブル (x_table) に一致する行が存在しない場合、INSERT が実行されます。

以上がMySQL にデータを挿入するときに一意の行を確保するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート