У меня есть три таблицы на SQL сервере;
Событие таблица:
CREATE TABLE [dbo].[Event]
(
[EventName] VARCHAR(25) NOT NULL,
[Description] VARCHAR(60) NULL,
[Location] VARCHAR(20) NULL,
[Date] VARCHAR(10) NULL,
[TicketFee] FLOAT(53) NULL,
PRIMARY KEY CLUSTERED ([EventName] ASC)
);
Клиент :
CREATE TABLE [dbo].[Client]
(
[Email] VARCHAR(35) NOT NULL,
[FullName] VARCHAR(25) NULL,
[Address] VARCHAR(50) NULL,
[Age] INT NULL,
[Phone] VARCHAR(15) NULL,
PRIMARY KEY CLUSTERED ([Email] ASC)
);
Регистр :
CREATE TABLE [dbo].[Register]
(
[Id] INT NOT NULL,
[GuestNum] INT NULL,
[PaymentAmount] FLOAT(53) NULL,
[EventName] VARCHAR(25) NULL,
[Email] VARCHAR(35) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_Register_Client]
FOREIGN KEY ([Email]) REFERENCES [dbo].[Client] ([Email]),
CONSTRAINT [FK_Register_Event]
FOREIGN KEY ([EventName]) REFERENCES [dbo].[Event] ([EventName])
);
Таблица Event
состоит из фиктивных данных только для функции поиска, и когда пользователь пытается зарегистрировать новое событие, оно сохраняется в Таблица регистров.
Проблема в том, что я получаю сообщение об ошибке:
SqlException: оператор INSERT конфликтует с ограничением FOREIGN KEY «FK_Register_Event». Конфликт произошел в базе данных «C: \ USERS \ RHYME \ SOURCE \ REPOS \ ONLINEEVENTREGISTRATION \ ONLINEEVENTREGISTRATION \ APP_DATA \ DATABASE1.MDF», таблица «dbo.Event», столбец «EventName».
Я искал Inte rnet и узнал, что это потому, что я пытаюсь вставить запись со значением в столбец внешнего ключа, которого нет во внешней таблице. Однако даже если я попытаюсь зарегистрировать событие с другим EventName
, которого нет в таблице событий, оно все равно выдаст ту же ошибку.
Я действительно не понимаю, где в моей таблице возникает проблема. ..Я новичок в базе данных, и любая помощь будет принята с благодарностью.