私はこれがストアドプロシージャなしで実行できると楽観的ではありませんが、次のことが可能であるかどうか不思議です。mySqlに、更新が失敗した場合に挿入する更新/挿入コンボがありますか?
一致を検出した場合にローを更新し、更新していない値をテーブルに挿入しない場合は、ローを更新する単一のクエリ挿入/更新を書きたいと考えています。
だから... ...イベントで
updateInsert into table_a set n = 'foo' where p='bar';
のようなもの何行のp =「バー」の存在しないこと、それは自動的にtable_aセットN =「FOO」内に挿入されます。
EDIT: 2つのコメントに基づいて、nがPRIMARY KEYではないことを明確にする必要があり、テーブルには実際には重複する行が必要です。私はちょうど特定のエントリがユニークである必要がある状況を持っています...おそらく私は悪い方法でメタファを混ぜるだけで、このキーが一意である別のテーブルにこれを引き出す必要があります。
リファレンススレッド - http://stackoverflow.com/questions/1361340/how-to-insert-if-not-exists-in-mysql – adatapost
すべての?: http://stackoverflow.comでこのヘルプをい/ questions/6107752/how-to-perform-an-upsert-so-that-i-can-use-both-new-and-old-update-par-bar – dweiss