создание двух таблиц с общими зависимостями

#sql-server

#sql-server

Вопрос:

Я пытаюсь создать две таблицы в sql с общими ключами и получаю сообщение об ошибке: невозможно создать, удалить, включить или отключить более одного ограничения, столбца, индекса или триггера с именем ‘PK_vc_Status’ в этом контексте. Повторяющиеся имена не допускаются.

Я не очень разбираюсь в mysqlServer и пытаюсь выяснить, что не так с моим кодом.

 CREATE TABLE vc_VidCast (
    -- Columns for the VidCast table
    vc_VidCastID int identity,
    VidCastTitle varchar(50) not null,
    StartDateTime datetime,
    EndDateTime datetime, 
    ScheduleDurationMinutes int,
    RecordingURL varchar(50),
    vc_UserID int not null,
    vc_StatusID int not null,
    -- Constraints on the VidCast List table
    CONSTRAINT PK_vc_VidCast PRIMARY KEY (vc_VidCastID),
    CONSTRAINT FK1_vc_VidCast FOREIGN KEY (vc_UserID) REFERENCES vc_User(vc_UserID),
    CONSTRAINT FK2_vc_VidCast FOREIGN KEY (vc_StatusID) REFERENCES vc_Status(vc_StatusID)
)
-- End creating the VidCast table


-- Creating the Status table
CREATE TABLE vc_Status (
    -- Columns for the Status table
    vc_StatusID int Identity,
    StatusText varchar(20),
    -- Constraints on the Status Table
    CONSTRAINT PK_vc_Status PRIMARY Key (vc_StatusID),
    CONSTRAINT U1_vc_Status UNIQUE (StatusText),
    CONSTRAINT PK_vc_Status FOREIGN KEY (vc_StatusID) REFERENCES vc_VidCast(vc_StatusID)

)
-- End Creating The Status Table
  

Комментарии:

1. Я вижу 2 PK_vc_Status в вашей второй таблице

2. Вы не можете создать FK2_vc_VidCast до тех пор, пока не создадите другую таблицу и сначала ее первичный ключ. Обычно вы добавляете внешние ключи в качестве второго шага ПОСЛЕ создания всех ваших таблиц и их первичных ключей.

3. И вы не должны пытаться использовать столбцы идентификаторов в обеих таблицах. Выберите одну таблицу (которую вы будете вставлять в первую очередь), чтобы иметь столбец identity. Во второй таблице будет только обычный столбец integer, и вы зададите его, используя значение столбца identity первой таблицы.