Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Verweist ein Fremdschlüssel immer auf einen eindeutigen Schlüssel in einer anderen Tabelle?

Nach dem SQL-Standard muss ein Fremdschlüssel entweder auf den Primärschlüssel oder einen eindeutigen Schlüssel der übergeordneten Tabelle verweisen. Wenn der Primärschlüssel mehrere Spalten hat, muss der Fremdschlüssel die gleiche Anzahl und Reihenfolge der Spalten haben. Daher verweist der Fremdschlüssel auf eine eindeutige Zeile in der übergeordneten Tabelle; es darf keine Duplikate geben.

Zu Ihrem Kommentar:

Wenn T.A ein Primärschlüssel ist, dann können Sie keine Duplikate haben. Jeder Primärschlüssel muss eindeutig und nicht null sein. Wenn die untergeordnete Tabelle über einen Fremdschlüssel verfügt, der auf den Primärschlüssel der übergeordneten Tabelle verweist, muss dieser daher mit einem eindeutigen Nicht-Null-Wert übereinstimmen und verweist daher auf genau eine Zeile in der übergeordneten Tabelle. In diesem Fall können Sie keine untergeordnete Zeile erstellen, die auf mehrere übergeordnete Zeilen verweist.

Sie können Erstellen Sie eine untergeordnete Zeile, deren Fremdschlüsselspalte NULL ist. In diesem Fall verweist sie auf keine Zeile in der übergeordneten Tabelle.