Я хочу изменить первичный ключ и все строки таблицы, которые ссылаются на это значение.
# table master
master_id|name
===============
foo|bar
# table detail
detail_id|master_id|name
========================
1234|foo|blu
Если я даю script или функцию
table=master, value-old=foo, value-new=abc
Я хочу создать фрагмент SQL, который выполняет обновления для всех таблиц, которые относятся к таблице "master":
update detail set master_id=value-new where master_id=value-new;
.....
С помощью интроспекции это должно быть возможно.
Я использую postgres.
Обновление
Проблема заключается в том, что существует множество таблиц, которые имеют внешний ключ к таблице "master". Я хочу, чтобы автоматически обновлять все таблицы, которые имеют внешний ключ для мастер-таблицы.