Я работаю над базой данных для моего школьного проекта, в которой я должен создать функциональную базу данных, нормализуя предоставленные нам образцы таблиц.Одна таблица, с которой у меня проблемы, это маршруты.Я создаю 3 таблицы из нормализации, которые представляют собой «Пункты назначения», «Маршруты» и «Маршруты_Пунктов».
Код для пунктов назначения:
create table Destinations
(
DestinationID varchar(5) primary key,
Name varchar(45)
);
Код для маршрутов:
create table Itineraries
(
ItineraryID varchar(5),
Name varchar(45)
);
Код для последней таблицы:
create table Itinerary_Destinations
(
DI varchar(5) primary key,
ItineraryID varchar(5) foreign key references Itineraries(ItineraryID),
Itinerary_Name varchar(45),
DestinationID varchar(5) foreign key references Destinations(DestinationID),
Destination_Name varchar(45)
);
Данные уже вставлены во все 3 таблицы, за исключением столбцов «Destination_Name» и «Itinerary_Name».Код, который я пытаюсь использовать, возвращается как ошибка.Код показан ниже.
insert into Itinerary_Destinations (Itinerary_name)
select Name from Itineraries where
Itineraries.ItineraryID = ItineraryID;
Возвращаемая ошибка:
Сообщение 515, Уровень 16, Состояние 2, Строка 1 Невозможно вставить значение NULL в столбец 'DI', таблица 'DDDAssignment.dbo.Itinerary_Destination';столбец не допускает пустых значений.Вставить не удается.Оператор был прерван.
Существует ли метод для выполнения задачи вставки Destination_Name и Itinerary_Name без создания новых записей, требующих первичных ключей?
Или я должен сделать это вручную