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

създаване на външен ключ без първичен ключ

Много добър въпрос. Няма основна причина, поради която референтното ограничение не трябва да препраща към нещо различно от кандидат ключ. Има дори име за такива ограничения:Зависимости на включване. Външният ключ е просто вид зависимост на включване, където целта на ограничението се оказва кандидат ключ.

За съжаление SQL не предоставя добра поддръжка за зависимостите на включването или дори за референтните ограничения като цяло. SQL ограничава своите т. нар. ограничения на FOREIGN KEY до препращане към колоните на ограничение UNIQUE или PRIMARY KEY (не е непременно ключ кандидат).

Така че това, с което се сблъскахте, наистина е съмнително ограничение на SQL. Това не означава, че правите нещо много грешно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Условен ORDER BY в зависимост от стойностите на колоните

  2. Как да намеря низ в цяла база данни?

  3. Как да внедрим полиморфни асоциации в съществуваща база данни

  4. SQL:Актуализирайте таблица, където колона =множество стойности

  5. Намерете истинското име на колона на псевдоним, използван в изглед?