sql >> Databáze >  >> RDS >> Oracle

odkazuje cizí klíč vždy na jedinečný klíč v jiné tabulce?

Podle standardu SQL musí cizí klíč odkazovat buď na primární klíč, nebo na jedinečný klíč nadřazené tabulky. Pokud má primární klíč více sloupců, musí mít cizí klíč stejný počet a pořadí sloupců. Proto cizí klíč odkazuje na jedinečný řádek v nadřazené tabulce; nemohou existovat žádné duplikáty.

K vašemu komentáři:

Pokud T.A je primární klíč, pak ne, nemůžete mít žádné duplikáty. Jakýkoli primární klíč musí být jedinečný a nesmí být null. Pokud tedy podřízená tabulka obsahuje cizí klíč odkazující na primární klíč rodiče, musí odpovídat jedinečné hodnotě, která není null, a proto odkazuje přesně na jeden řádek v nadřazené tabulce. V tomto případě nemůžete vytvořit podřízený řádek, který odkazuje na více nadřazených řádků.

můžete vytvořte podřízený řádek, jehož sloupec cizího klíče má hodnotu NULL, v takovém případě neodkazuje na žádný řádek v nadřazené tabulce.



  1. Jak spojit cx_oracle s Pyinstallerem

  2. Poddotazy s EXISTS vs IN - MySQL

  3. Mezipaměť výsledků

  4. Pronikání hlouběji do migrace Django