Что делает ON UPDATE RESTRICT?

...
user_id INTEGER NOT NULL, 
CONSTRAINT fk_user_meta FOREIGN KEY (user_id)
    REFERENCES users (id) ON DELETE CASCADE ON UPDATE RESTRICT

Из здесь я знаю, что ON DELETE CASCADE означает, что если я удалю строку из user, то связанная строка из мета-таблицы пользователя также будет удалена. Но что делает ON UPDATE RESTRICT?


person Alex    schedule 03.12.2011    source источник


Ответы (1)


RESTRICT предотвращает выполнение действия, если существуют внешние ключи, зависящие от изменяемого поля.

person Chris Eberle    schedule 03.12.2011
comment
зачем вам вообще это реализовывать? - person phil294; 03.02.2017
comment
@Blauhirn Если у вас есть данные в других таблицах, которые не имеют смысла без ссылочных данных, то разрешение их удаления и перевода данных в недопустимое состояние было бы плохой идеей. RESTRICT позволяет удалять данные, на которые ссылается внешний ключ, только если от них не зависят никакие другие данные. например удаление записи о клиенте, если на нее ссылаются заказы клиентов. Клиента, который не сделал ни одного заказа, можно безопасно удалить. - person CJ Dennis; 27.04.2018
comment
Звучит приятно иметь. Сильно ли это влияет на производительность? - person Will Sheppard; 21.08.2018
comment
@WillSheppard- Лучше подумать о том, сколько будет стоить не делать этого. - person Dave Pile; 15.12.2021