sql >> Databáze >  >> RDS >> Sqlserver

Cizí klíč na neprimární klíč

Pokud opravdu chcete vytvořit cizí klíč pro jiný než primární klíč, MUSÍ to být sloupec, který má na sebe jedinečné omezení.

Z Books Online:

Omezení FOREIGN KEY nemusí být spojeno pouze s omezením PRIMARYKEY v jiné tabulce; může být také definováno tak, aby odkazovalo na sloupce omezení UNIQUE v jiné tabulce.

Takže ve vašem případě, pokud vytvoříte AnotherID unikátní, bude povoleno. Pokud nemůžete použít jedinečné omezení, máte smůlu, ale pokud se nad tím zamyslíte, opravdu to dává smysl.

Ačkoli, jak již bylo zmíněno, pokud máte jako kandidátský klíč naprosto dobrý primární klíč, proč jej nepoužít?



  1. Je možné mít v MySQL index založený na funkcích?

  2. Zkrácení serveru SQL Server a omezení 8192

  3. Udělte oprávnění uživateli MySQL v systému Linux prostřednictvím příkazového řádku

  4. Jak se vyhnout uzamčení dodavatele cloudu PostgreSQL