sql >> Database teknologi >  >> RDS >> Sqlserver

oprette fremmednøgle uden en primærnøgle

Meget godt spørgsmål. Der er ingen grundlæggende grund til, at en referencebegrænsning ikke skal referere til noget andet end en kandidatnøgle. Der er endda et navn for sådanne begrænsninger:Inclusion Dependencies. En fremmednøgle er blot en type inklusionsafhængighed, hvor målet for begrænsningen tilfældigvis er en kandidatnøgle.

Desværre giver SQL ikke god støtte til inklusionsafhængigheder eller endda for referencemæssige begrænsninger generelt. SQL begrænser sine såkaldte FOREIGN KEY-begrænsninger til at henvise til kolonnerne i en UNIK eller PRIMÆR NØGLE-begrænsning (dog ikke nødvendigvis en kandidatnøgle).

Så det du er stødt på er virkelig en tvivlsom begrænsning af SQL. Det betyder ikke, at du gør noget meget forkert.



  1. SQL Server tilfældig sortering

  2. Forbind Metabase med MySQL til dataudforskning

  3. Hvordan kan jeg flette to strenge af kommaseparerede tal i MySQL?

  4. At få duplikerede indtastningsfejl fra Hibernate, er MySQL skylden?