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

Hvad er meningen med selvhenvisende fremmednøgle?

ALTER TABLE [SchemaName].[TableName]  WITH CHECK ADD  
CONSTRAINT [FK_TableName_TableName] FOREIGN KEY([Id])
REFERENCES [SchemaName].[TableName] ([Id])

Denne fremmednøgle er fuldstændig overflødig og meningsløs bare slet den. Den kan aldrig overtrædes, da en række matcher sig selv og validerer begrænsningen.

I en hierarkisk tabel vil forholdet være mellem to forskellige kolonner (f.eks. Id og ParentId )

Med hensyn til hvorfor det kan være blevet oprettet ved brug af den visuelle designer, hvis du højreklikker på noden "Nøgler" i objektudforsker og vælger "Ny fremmednøgle", lukker dialogboksen uden at slette den oprettede fremmednøgle og laver nogle andre ændringer i den åbnede tabeldesigner og gemme den vil skabe denne form for redundant begrænsning.



  1. PostgreSQL, Npgsql returnerer 42601:syntaksfejl ved eller tæt på $1

  2. PHP MYSQL PDO -> Fatal Error 23000, selvom en særlig procedure er på plads

  3. Er brugen af ​​SELECT COUNT(*) før SELECT INTO langsommere end at bruge undtagelser?

  4. Cursor i Mysql har andre rettigheder end bruger?