In Postgres kunt u een beschrijfbare CTE gebruiken om beide tabellen in één instructie bij te werken.
Uitgaande van deze tabelopstelling:
create table a (rid integer primary key, ride text, qunta integer);
create table b (kid integer primary key, rid integer references a, date date);
De CTE zou zijn:
with new_a as (
update a
set rid = 110
where rid = 1
)
update b
set rid = 110
where rid = 1;
Aangezien (niet-uitstelbare) externe sleutels worden geëvalueerd op instructieniveau en zowel de primaire als de externe sleutel worden gewijzigd in hetzelfde instructie , dit werkt.
SQLFiddle:http://sqlfiddle.com/#!15/db6d1/1