@wideShift

RESTRICT и NO ACTION где увидеть разницу?

Читаю документацию:
RESTRICT предотвращает удаление связанной строки. NO ACTION означает, что если зависимые строки продолжают существовать при проверке ограничения, возникает ошибка (это поведение по умолчанию). (Главным отличием этих двух вариантов является то, что NO ACTION позволяет отложить проверку в процессе транзакции, а RESTRICT — нет.)

И ни одного примера, чтобы увидеть эту разницу.
  • Вопрос задан
  • 449 просмотров
Решения вопроса 1
@galaxy
Ну вот вам такой пример

create table p (id serial primary key, val text);

create table c (id serial primary key, p_id int not null references p(id) on delete no action deferrable, val text);

insert into p (val) values ('a'), ('b');

insert into c (p_id, val) values (1, 'a1'), (1, 'a2'), (1, 'a3'), (2, 'b1');

begin;
set constraints all deferred;
delete from p where id = 2;
delete from c where p_id = 2;
commit;


Почитайте также про отложенные ограничения
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы