В Postgres можете да използвате записваем CTE, за да актуализирате и двете таблици в един израз.
Ако приемем тази настройка на таблицата:
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 ще бъде:
with new_a as (
update a
set rid = 110
where rid = 1
)
update b
set rid = 110
where rid = 1;
Тъй като (неотлагаемите) външни ключове се оценяват на ниво израз и първичният и външният ключ се променят в един и същи изявление , това работи.
SQLFiddle:http://sqlfiddle.com/#!15/db6d1/1