sql >> Databasteknik >  >> RDS >> Sqlserver

skapa främmande nyckel utan en primärnyckel

Mycket bra fråga. Det finns inget grundläggande skäl till varför en referensrestriktion inte bör referera till något annat än en kandidatnyckel. Det finns till och med ett namn för sådana begränsningar:Inclusion Dependencies. En främmande nyckel är bara en typ av inkluderingsberoende där målet för begränsningen råkar vara en kandidatnyckel.

Tyvärr ger SQL inte bra stöd för inkluderingsberoenden eller ens för referensrestriktioner i allmänhet. SQL begränsar sina så kallade FOREIGN KEY-restriktioner till att referera till kolumnerna i en UNIK eller PRIMÄR KEY-restriktion (dock inte nödvändigtvis en kandidatnyckel).

Så det du har stött på är verkligen en tveksam begränsning av SQL. Det betyder inte att du gör något väldigt fel.



  1. SQL Server:rader i kolumner

  2. Hur återställer man dynamiskt databaskonfiguration i Laravel?

  3. Hur ökar man anslutningsgenomströmningen för pgbouncer?

  4. Hur man skapar och underhåller MySQL-databaser i cPanel