I Postgres kan du använda en skrivbar CTE för att uppdatera båda tabellerna i en enda sats.
Förutsatt att denna tabellinställning:
create table a (rid integer primary key, ride text, qunta integer);
create table b (kid integer primary key, rid integer references a, date date);
CTE skulle vara:
with new_a as (
update a
set rid = 110
where rid = 1
)
update b
set rid = 110
where rid = 1;
Eftersom (icke uppskjutningsbara) främmande nycklar utvärderas på satsnivå och både den primära och främmande nyckeln ändras i samma sats , det här fungerar.
SQLFiddle:http://sqlfiddle.com/#!15/db6d1/1