Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zmiana tabeli i dodanie UNIKALNEGO klucza powoduje błąd

Zobacz dokumentację jak dodać ograniczenie tabeli.

ALTER TABLE Animal ADD CONSTRAINT UQ_Animal_AnimalTypeId UNIQUE (AnimalType_id)

Wygląda na to, że AnimalType_id jest kluczem obcym, więc chciałem tylko sprawdzić, czy rozumiesz, że czyniąc tę ​​kolumnę unikalną, tworzysz relację jeden-jeden – będziesz mógł mieć tylko jedno zwierzę każdego typu.

Ponieważ pojawia się błąd podczas dodawania ograniczenia przez unikalność, sugeruję, że faktycznie potrzebujesz klucza obcego zamiast ograniczenia przez unikalność:

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

Musiałem odgadnąć nazwę tabeli AnimalType i nazwę kolumny klucza podstawowego - proszę zmienić je, jeśli są nieprawidłowe.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuń zduplikowane wiersze w SQL Server

  2. Wersja programu SQL Server 2008 OVER (... Wiersze bez ograniczeń poprzedzające)

  3. Przesyłanie strumieniowe bezpośrednio do bazy danych

  4. Obróć nieznaną zawartość kolumny

  5. SQL Server 2008 - Pomoc w pisaniu prostego wyzwalacza INSERT