Означает ли создание внешнего ключа автоматически ссылочную целостность? - PullRequest
1 голос
/ 13 сентября 2011

Если я создаю внешний ключ, автоматическая ли ссылочная целостность? Нужно ли устанавливать что-либо еще, чтобы каскад работал?

edit: например, в postgres. Под автоматом я подразумеваю, что мне не нужно ничего настраивать, чтобы заставить работать RI. Удаление. Я предполагаю, что FK означает, что он обеспечит наличие данных в FK для вставки.

Ответы [ 3 ]

7 голосов
/ 13 сентября 2011

Да, ссылочная целостность применяется, как только вы создаете внешний ключ. Вы также можете определить другие параметры, такие как каскадные обновления и удаления. Обычно это часть того же синтаксиса, который используется для создания внешнего ключа, и обычно его нужно указывать при создании внешнего ключа - по крайней мере, так он работает в стандартном SQL.

2 голосов
/ 13 сентября 2011

Ссылочная целостность - это нечто большее, чем внешние ключи.

Когда речь идет о каскадах, это зависит от того, как вы определяете внешние ключи и от используемой СУБД.

1 голос
/ 13 сентября 2011

Если я создаю внешний ключ, автоматическая ли ссылочная целостность?

Нет.

Нужно ли устанавливать что-либо еще для работы каскадирования?

Подробности зависят от системы базы данных, которую вы используете, но что-то вроде "ON DELETE CASCADE", вероятно, то, что вы хотите.

...