#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 первой таблицы.