MySQLデータベーステーブルに行を追加する必要がありますが、その行が存在しない場合に限ります。私のデータベースサーバーがダウンしたので、私はこれをテストすることはできませんが、期待どおりに動作しますか?行が存在しないかどうか確認する[MySQL]
INSERT INTO `blocks` (`block_file`,`settings_group`)
VALUES ('announcements','announcement_settings')
WHERE NOT EXISTS (SELECT `block_file`,`settings_group`
FROM `blocks`
WHERE `block_file`='announcements' AND `settings_group`='announcement_settings')
サウンドロジックのようです。これは有効なクエリですか、これを行う良い方法がありますか?
SQL Serverでは、そのようなアプローチで競合状態が発生します。これがMySQLにも当てはまるかどうかは不明です。それはこの特定のクエリだけですか、それらの2つの列に一意性を強制したいのですか? –
mysqlと同じです - テーブルから選択している間はテーブルを変更することはできません –