sql >> Databáze >  >> RDS >> Sqlserver

vytvořit cizí klíč bez primárního klíče

Velmi dobrá otázka. Neexistuje žádný zásadní důvod, proč by referenční omezení nemělo odkazovat na něco jiného než kandidátský klíč. Existuje dokonce název pro taková omezení:Inclusion Dependencies. Cizí klíč je jen typ závislosti na zahrnutí, kde je cílem omezení kandidátský klíč.

Bohužel SQL neposkytuje dobrou podporu pro zahrnutí závislostí nebo dokonce pro referenční omezení obecně. SQL omezuje svá takzvaná omezení FOREIGN KEY na odkazování na sloupce omezení UNIQUE nebo PRIMARY KEY (ne však nutně kandidátského klíče).

Takže to, na co jste narazili, je skutečně pochybné omezení SQL. Neznamená to, že děláte něco velmi špatného.



  1. Denní dělení databáze Oracle DB

  2. Vytvoření jedinečného indexu Ecto selhalo pro Mysql/Mariadb

  3. Nainstalujte modul mysql pro python s pip

  4. Vraťte Unixové časové razítko v PostgreSQL