Ada dua kemungkinan alasan pembaruan untuk mencoba foo.a ke NULL.
- Ada baris di foo yang tidak ada baris yang cocok di bilahnya.
- Baris yang cocok di bilah memiliki bar.x dari nol.
Berikut ini akan mengecualikan pembaruan untuk foo jika salah satu dari kondisi di atas benar. Dalam kasus tersebut foo.a akan tetap seperti semula:
update foo
set a = (select distinct( x ) from bar where bar.y = foo.b )
where exists
(select *
from bar
where bar.y = foo.b
and bar.x is not null);