ホームページ > データベース > mysql チュートリアル > MySQL で条件付き挿入を実行できますか?

MySQL で条件付き挿入を実行できますか?

Linda Hamilton
リリース: 2024-11-10 18:02:02
オリジナル
221 人が閲覧しました

Can You Perform Conditional Inserts in MySQL?

MySQL の条件付き挿入ステートメント

SQL では、通常、データベース テーブルにレコードを挿入するために INSERT ステートメントが使用されます。ただし、特定の条件が満たされた場合にのみレコードを挿入する必要がある場合はどうすればよいでしょうか?条件付き INSERT を実行できますか?

問題ステートメント

「products」と「orders」という 2 つのテーブルがあるシナリオを考えてみましょう。 「products」テーブルには、製品の詳細とその手持ち数量 (qty_on_hand) が格納されます。 「注文」テーブルは注文の詳細を追跡します。

特定の製品の注文があり、その注文を満たすのに十分な数量が手元にあるかどうかを確認する必要があるとします。従来は、個別のクエリを実行して手持ちの数量を確認し、条件が満たされた場合に INSERT を実行していました。ただし、このアプローチは同時実行の問題に対して脆弱です。

条件付き挿入ソリューション

MySQL は、SELECT...WHERE 構文を使用して条件付き挿入を実行する便利な方法を提供します。

INSERT INTO TABLE
SELECT value_for_column1, value_for_column2, ...
FROM wherever
WHERE your_special_condition
ログイン後にコピー

この構文では、SELECT ステートメントが指定された条件を満たす行を返す場合にのみ、テーブルに行を挿入できます。例:

insert into orders (product_id, qty)
select 2, 20
where (SELECT qty_on_hand FROM products WHERE id = 2) > 20;
ログイン後にコピー

このクエリでは、サブクエリが 20 より大きい値 (十分な在庫を示す) を返した場合、INSERT ステートメントは製品 ID 2 を持つ行を「orders」テーブルに追加します。それ以外の場合、行は挿入されません。

利点

条件付き INSERT ステートメントを使用すると、次のような利点があります。

  • 条件チェックと挿入操作を 1 つのクエリに結合することで、同時実行性の問題を排除します。
  • 個別のクエリと条件付きロジックの必要性を排除することで、コードを簡素化します。
  • 挿入のみが発生するようにすることで、データの一貫性を強化します。指定された条件が満たされたとき。

以上がMySQL で条件付き挿入を実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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