只有當某個表中某個記錄不存在時,纔想更新某個表的記錄。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
一個進程正在更新此表,所以保留了操作的原子性是沒有必要的。
我知道我可以使用兩個SQL查詢來做到這一點,但有沒有辦法在單個查詢中做到這一點?
因此,它是同一個表或不一樣呢? –
@PaulSpiegel它是同一張表 –
你能做'where id ='someid'並且存在(select * from mytable where col ='val2')' – Jeff