Oracle
 sql >> база данни >  >> RDS >> Oracle

винаги ли външният ключ се позовава на уникален ключ в друга таблица?

Съгласно стандарта на SQL външният ключ трябва да препраща или към първичния ключ, или към уникален ключ на родителската таблица. Ако първичният ключ има няколко колони, външният ключ трябва да има същия брой и ред на колоните. Следователно външният ключ препраща към уникален ред в родителската таблица; не може да има дубликати.

Относно вашия коментар:

Ако T.A е първичен ключ, тогава не, не можете да имате дубликати. Всеки първичен ключ трябва да бъде уникален и ненулев. Следователно, ако дъщерната таблица има външен ключ, препращащ първичния ключ на родителя, той трябва да съответства на ненулева, уникална стойност и следователно препраща точно към един ред в родителската таблица. В този случай не можете да създадете дъщерен ред, който препраща към множество родителски редове.

Вие можете създайте дъщерен ред, чиято колона за външен ключ е NULL, като в този случай той не препраща към никакъв ред в родителската таблица.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разлика между функция на таблица и конвейерна функция?

  2. Функция LAST_DAY() в Oracle

  3. 3 начина за проверка на типа данни на колона в Oracle

  4. Oracle 11g - Как да оптимизираме избора на бавно паралелно вмъкване?

  5. Може ли да възникне задънена улица със същия метод за достъп?