При изменении внешнего ключа в PostgreSQL возможны разные действия в зависимости от установленной опции. 12 Некоторые из них:
- CASCADE. 12 Автоматически удаляет или изменяет строки из зависимой таблицы при удалении или изменении связанных строк в главной таблице. 2
- RESTRICT. 2 Предотвращает какие-либо действия в зависимой таблице при удалении или изменении связанных строк в главной таблице. 2
- NO ACTION. 12 Действие по умолчанию, предотвращает какие-либо действия в зависимой таблице при удалении или изменении связанных строк в главной таблице и генерирует ошибку. 2
- SET NULL. 15 При удалении или обновлении данных в главной таблице столбец внешнего ключа в зависимой таблице автоматически устанавливается в значение NULL. 15
- SET DEFAULT. 25 При удалении или обновлении данных в главной таблице столбец внешнего ключа в зависимой таблице автоматически устанавливается в значение по умолчанию, если оно указано. 5
По умолчанию ограничения внешнего ключа проверяются в конце каждого запроса INSERT, UPDATE и DELETE. 3