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

MySQL条件付き挿入

    挿入を実行するときに選択するテーブルにDBMSが制限を課していない場合は、次のことを試してください。

    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 は1行のみのテーブルです(元々はOracleにありましたが、現在はmysqlにもあります)。ロジックは、SELECTステートメントが必要な値を含む単一行のデータを生成することですが、値がまだ見つからない場合に限ります。

    または、MERGEステートメントを確認してください。



    1. PostgreSql'PDOException'メッセージ'がドライバーを見つけられませんでした'

    2. OracleSQLでサブクエリを使用してデータを更新する5つの方法

    3. Django開発データベースをデフォルトのSQLiteからPostgreSQLに変更する

    4. MariaDBデータベースを暗号化された状態と暗号化されていない状態に移動する