sql >> データベース >  >> RDS >> Mysql

MySQL INSERT IF(カスタムifステートメント)

    INSERT INTO TABLE
    SELECT value_for_column1, value_for_column2, ...
    FROM wherever
    WHERE your_special_condition
    

    選択から行が返されない場合(特別な条件がfalseであるため)、挿入は行われません。

    質問のスキーマを使用する(idを想定) 列はauto_incrementです ):

    insert into orders (product_id, qty)
    select 2, 20
    where (SELECT qty_on_hand FROM products WHERE id = 2) > 20;
    

    手元に十分な在庫がない場合、これは行を挿入しません。そうでない場合、注文行が作成されます。

    いいアイデアです!



    1. PowerShellを使用してパラメーターのデフォルト値を解析する–パート2

    2. ツリーテーブルのSQLクエリ

    3. 私のDBAは病気です-SysAdminsのためのデータベースフェイルオーバーのヒント

    4. SQL Serverで「smalldatetime」を「datetime」に変換する(T-SQLの例)