Есть ли лучший способ добавить ограничения внешнего ключа в Postgres одновременно? - PullRequest
0 голосов
/ 28 января 2020

Я добавляю конечную точку удаления в API. Интересующая меня таблица имеет отношение один ко многим с другими схемами, использующими внешний ключ.

Вместо многочисленных запросов на удаление дочерних таблиц вплоть до родительских, я добавил ограничения CASCADE ON DELETE, которые будут решать эту проблему.

alter table "child"
drop constraint "parent_fk",
add constraint "parent_fk"
  foreign key (parent_id)
  references "parent"(id)
  on delete cascade;

Это работает хорошо, как и ожидалось. Но в Prod, скорее всего, это остановит базу данных, так как таблица изменения получает блокировку для этой таблицы, и нет никакого параллельного запроса, насколько мне известно.

Есть ли лучший способ сделать это одновременно? Или менее эксклюзивное решение для блокировки?

...