Невозможно добавить внешний ключ ограничения в таблицу из уже созданной таблицы в SQL Server Management Studio 18. Может кто-нибудь мне помочь? - PullRequest
0 голосов
/ 20 июня 2019

Я создаю базу данных для моего назначения. Мне пришлось создать 2 таблицы, а именно Customer и Job, с помощью опции «Новый запрос» на SQL-сервере. После их создания я хотел добавить Job_ID (первичный ключ) из таблицы Job в качестве внешнего ключа в таблицу Customer. Поскольку я уже создал таблицу Customer, единственной возможностью для меня было изменить таблицу клиентов. Но после изменения я, кажется, получил эту необычную ошибку.

Сообщение 1769, Уровень 16, Состояние 1, Строка 1 Внешний ключ «Job_ID» ссылается на недопустимый столбец «Job_ID» в ссылочной таблице «CUSTOMER». Сообщение 1750, уровень 16, состояние 0, строка 1 Не удалось создать ограничение или индекс. Смотрите предыдущие ошибки.

Я могу предоставить вам больше информации, если это необходимо.

CREATE TABLE CUSTOMER 
(Customer_ID INT NOT NULL PRIMARY KEY,
Customer_Name VARCHAR(15) NOT NULL,
Gender CHAR(1),
Customer_Type VARCHAR(12) NOT NULL,
Addresss VARCHAR(20) NOT NULL,
Telephone_No CHAR(10) NOT NULL);

CREATE TABLE JOB
(Job_ID INT NOT NULL PRIMARY KEY,
Pickup_location VARCHAR (10) NOT NULL,
Destination VARCHAR (10) NOT NULL,
Customer_ID INT FOREIGN KEY REFERENCES CUSTOMER(Customer_ID));

ALTER TABLE CUSTOMER
ADD FOREIGN KEY (Job_ID) REFERENCES JOB(Job_ID);

1 Ответ

0 голосов
/ 20 июня 2019

Это похоже на проблему, описанную здесь .

Когда вы пытаетесь создать свой внешний ключ:

ALTER TABLE CUSTOMER
ADD FOREIGN KEY (Job_ID) REFERENCES JOB(Job_ID);

Вы говорите, что хотитеиспользуйте поле Job_ID из таблицы CUSTOMER:

ALTER TABLE CUSTOMER ADD FOREIGN KEY (Job_ID)

и чтобы значения в этом поле соответствовали значениям в столбце Job_ID из таблицы JOB:

REFERENCES JOB(Job_ID);

Проблема в том, что ваша таблица CUSTOMER не имеет столбца Job_ID, основываясь на ее определении:

CREATE TABLE CUSTOMER 
(Customer_ID INT NOT NULL PRIMARY KEY,
Customer_Name VARCHAR(15) NOT NULL,
Gender CHAR(1),
Customer_Type VARCHAR(12) NOT NULL,
Addresss VARCHAR(20) NOT NULL,
Telephone_No CHAR(10) NOT NULL);

Поля в таблице CUSTOMER: Customer_ID,Customer_Name, Gender, Customer_Type, Addresss и Telephone_No.

Поэтому вам нужно либо добавить столбец Job_ID в таблицу CUSTOMER, либо указать другое поле дляиспользуйте в вашем ALTER TABLE утверждении - то, которое действительно существует в таблице CUSTOMER.

Более подробную информацию о ALTER TABLE и ADD FOREIGN KEY, в частности, можно найти здесь здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...