Existují dva možné důvody pro pokus o aktualizaci foo.a na NULL.
- V foo existují řádky, pro které nejsou žádné odpovídající řádky v baru.
- Odpovídající řádek v pruhu má bar.x null.
Následující vyloučí aktualizace foo, pokud platí některá z výše uvedených podmínek. V těchto případech zůstane foo.a tak, jak bylo:
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);