Я добавляю конечную точку удаления в 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, скорее всего, это остановит базу данных, так как таблица изменения получает блокировку для этой таблицы, и нет никакого параллельного запроса, насколько мне известно.
Есть ли лучший способ сделать это одновременно? Или менее эксклюзивное решение для блокировки?