特定のレコードがテーブルに存在しない場合にのみテーブルの特定のレコードを更新します。SQL:特定の種類のレコードが同じテーブルにない場合にレコードを更新します。
次のようなSQLを試しました。
update mytable
set val = 'someval'
where id = 'someid' and
0 = (select count(*) from mytable where col='val2');
このエラーは次のエラーで失敗します。
You can't specify target table 'mytable' for update in FROM clause
つだけのプロセスは、このテーブルを更新するので、操作のアトミック性を維持する必要はありません。
私は2つのSQLクエリを使ってこれを行うことができますが、これを1つのクエリで行う方法はありますか?
を? –
@PaulSpiegelそれは同じテーブルです –
あなたは 'id = 'someid'を実行できますか?(mytableからselect * from col = 'val2')' – Jeff