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

テーブルが空の場合にのみmysql挿入を実行します

    ステートメントに構文エラーがあります:

    INSERT INTO `statuses`
        (SELECT  'Something', 'Something else', 123
         WHERE NOT EXISTS (SELECT * FROM `statuses`)
        ) union all
        (SELECT 'Something', 'Something else', 234
         WHERE NOT EXISTS (SELECT * FROM `statuses`)
        );
    

    whereを繰り返す必要があります この場合は2回、サブクエリごとに1回です。次のこともできます:

    INSERT INTO `statuses`
        select t.*
        from ((SELECT  'Something' as col1, 'Something else' as col2, 123 as col3
              ) union all
              (SELECT 'Something', 'Something else', 234
              )
             ) t
        WHERE NOT EXISTS (SELECT * FROM `statuses`);
    

    このバージョンでは、列に名前を割り当てる必要があります。

    または、2つの別々の挿入ステートメントを使用することもできます。



    1. mysqlの既存の行の列の値に1を追加する方法

    2. クラスDatabaseのオブジェクトを文字列に変換できませんでした

    3. ハイブリッドクラウドセットアップでのパフォーマンスの向上

    4. Javaを介して新しいdbレコードをリッスンする方法