Я довольно новичок в SQL и хотел бы попросить помощи, поскольку я борюсь с проблемой внешнего ключа. Я искал и искал поиски в течение нескольких дней без каких-либо результатов.SQL external key возвращает NULL
Моя проблема в том, что я создаю 2 таблицы, где один с первичным ключом, а второй с первичным ключом и внешним ключом. Вы можете увидеть ниже примере кода:
CREATE TABLE CarList
(
C_Id int IDENTITY (1,1) PRIMARY KEY,
Car_Model nvarchar(255),
)
Чем я вставка данных в эту таблицу, как показано ниже:
INSERT INTO CarList (Car_Model)
VALUES ('AUDI'), ('BMW'), ('PORSCHE')
Чем я создаю вторую таблицу с внешним ключом, как показано ниже:
CREATE TABLE Series
(
S_Id int IDENTITY (1,1) PRIMARY KEY,
Car_Series nvarchar(255),
Car_Id int FOREIGN KEY REFERENCES CarList(C_Id)
)
И как заключительный шаг я вставляя данные для второй таблицы:
INSERT INTO Series(Car_Series)
VALUES ('911c'), ('330d'), ('80TDI')
Здесь моя проблема на самом деле приходит. После того, как я установил все и вызову таблицу с внешним ключом, столбец, который должен иметь значение внешнего ключа, будет отображаться как NULL
. Я установил связь между обеими таблицами в SQL Server Management Studio, но результат все тот же.
Затем я пытаюсь сопоставить обе таблицы с объединениями и тем же. Все, что я читал в Интернете, в основном не говорит о том, как значение должно появляться в столбце внешнего ключа или, по крайней мере, я не понимаю. Я хочу, чтобы первые модели настольных машин соответствовали второй таблице, вызывающей их по идентификатору. Поэтому, если я хочу вызвать ID 1 из первой таблицы, которая является AUDI, чтобы получить вторую таблицу ID серии 80TDI.
Не могли бы вы помочь?
Спасибо Марк! Теперь совершенно ясно. Единственное, что приходит мне в голову, - что, если у меня есть действительно огромное количество данных для вставки во вторую таблицу? Не добавляли ли соответствующее число слишком много времени?Может быть, автоматическая опция для этого или я должен пойти с этим подходом? – TheShadow
Нет, это не должно увеличивать накладные расходы, если оно находится в одном и том же вставке. Также объем данных низкий, так как он всего лишь целое число. –
Еще раз спасибо! Теперь ясно :) – TheShadow