sql >> Database >  >> RDS >> Oracle

verwijst een externe sleutel altijd naar een unieke sleutel in een andere tabel?

Volgens de SQL-standaard moet een externe sleutel verwijzen naar de primaire sleutel of naar een unieke sleutel van de bovenliggende tabel. Als de primaire sleutel meerdere kolommen heeft, moet de refererende sleutel hetzelfde aantal kolommen en dezelfde volgorde hebben. Daarom verwijst de refererende sleutel naar een unieke rij in de bovenliggende tabel; er mogen geen duplicaten zijn.

Opnieuw uw opmerking:

Als T.A is een primaire sleutel, dan kunt u geen duplicaten hebben. Elke primaire sleutel moet uniek en niet-null zijn. Als de onderliggende tabel dus een refererende sleutel heeft die verwijst naar de primaire sleutel van de ouder, moet deze overeenkomen met een niet-null, unieke waarde en verwijst daarom naar precies één rij in de bovenliggende tabel. In dit geval kunt u geen onderliggende rij maken die verwijst naar meerdere bovenliggende rijen.

Je kunt maak een onderliggende rij waarvan de kolom met de refererende sleutel NULL is, in welk geval deze naar geen rij in de bovenliggende tabel verwijst.



  1. Unnes array met één niveau

  2. Hoe een kolomnaam of tabelnaam in SQL Server te hernoemen - SQL Server / T-SQL-zelfstudie, deel 36

  3. Opdrachtgeschiedenis in isql

  4. Alles wat u moet weten over databasenormalisatie