Задать вопрос
@wideShift

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

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

И ни одного примера, чтобы увидеть эту разницу.
  • Вопрос задан
  • 636 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    QPT PostgreSQL 16. Оптимизация запросов
    1 неделя
    Далее
  • Skillfactory
    Профессия C++ разработчик
    11 месяцев
    Далее
  • Нетология
    Python-разработчик с нуля
    6 месяцев
    Далее
Решения вопроса 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;


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

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

Похожие вопросы