In Postgres puoi utilizzare un CTE scrivibile per aggiornare entrambe le tabelle in un'unica istruzione.
Supponendo questa configurazione della tabella:
create table a (rid integer primary key, ride text, qunta integer);
create table b (kid integer primary key, rid integer references a, date date);
Il CTE sarebbe:
with new_a as (
update a
set rid = 110
where rid = 1
)
update b
set rid = 110
where rid = 1;
Poiché le chiavi esterne (non differibili) vengono valutate a livello di istruzione e sia la chiave primaria che quella esterna vengono modificate nella stessa istruzione , questo funziona.
SQLFiddle:http://sqlfiddle.com/#!15/db6d1/1