sql >> Databasteknik >  >> RDS >> Sqlserver

Ändra tabell &Lägg till UNIK nyckel resulterar i ett fel

Se dokumentationen för hur man lägger till en tabellbegränsning.

ALTER TABLE Animal ADD CONSTRAINT UQ_Animal_AnimalTypeId UNIQUE (AnimalType_id)

Det låter som AnimalType_id är en främmande nyckel så jag ville bara kontrollera att du förstod att genom att göra den här kolumnen unik, gör du relationen till ett - du kommer bara att kunna ha ett djur av varje typ.

Eftersom du får ett felmeddelande när du lägger till den unika begränsningen, kommer jag att föreslå att du faktiskt vill ha en främmande nyckel istället för en unik begränsning:

ALTER TABLE Animal
    ADD CONSTRAINT FK_Animal_AnimalType
    FOREIGN KEY
    (
        AnimalType_id
    )
    REFERENCES AnimalType
    (
        id
    )

Jag har behövt gissa på namnet på AnimalType-tabellnamnet och dess primära nyckelkolumnnamn – vänligen ändra dessa om de är felaktiga.



  1. Maximal rad i DBMS

  2. Kolumn för automatisk ökning:skillnader i SQL-syntax mellan Oracle och MySQL

  3. SQLiteDatabase-fel, ohjälpsam logg

  4. Lägg till begränsning för att göra kolumnen unik per grupp av rader