Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Что такое внешний ключ (Foreign key)?

ПрограммированиеData science+3
Анонимный вопрос
Data Science
  · 3,4 K
Openstack DevOps and IBM/Informix Certified DBA . Phd in Math (Duality of spaces of...  · 29 мар 2022
Внешний ключ — это столбец или группа столбцов в таблице реляционной базы данных, которая обеспечивает связь между данными в двух таблицах. Он действует как перекрестная ссылка между таблицами, поскольку ссылается на первичный ключ другой таблицы, тем самым устанавливая связь между ними.
Большинство таблиц в системах реляционных баз данных придерживаются концепции целостности по ссылкам (referential integrity). В сложных базах данных могут быть добавлены другие таблицы, имеющие внешние ключи ссылающиеся на уже присутсвующие первичные ключи хранимых таблиц , таким образом поддерживая целостность по ссылкам между ними. Ответственность за поддержание целостности по ссылкам несет сам SQL Server. Он не позволяет удалить строку из tabX с первичным ключом р01 , если tabY имеет внешний ключ р01 , ссылающийся на р01 из tabX.
Пример
CREATE TABLE orders (
order _no INT PRIMARY KEY,
user_id INT REFERENCES users(user_id),
product_sku INT REFERENCES books(product_sku),
);
Мы не можем удалить пользователя из "users" у которого есть заказы (хоть 1) в таблице "orders" и мы не можем ввести заказ, для которого в таблице "users" нет записи с значение user_id которое мы бы хотели ввести в "orders".
1 эксперт согласен
Пишу код и т.п.  · 2 апр 2022  · itustinov.ru
Внешний ключ — это ограничение значений столбца одной таблицы значениями другого столбца другой или той же самой таблицы, т.е. механизм контроля целостности базы данных. Задача внешних ключей — недопустить появление ссылок вникуда. В самом общем случае, они запрещают неправильные вставки, а в зависимости от настроек также запрещают обновления значений и удаления строк... Читать далее