Я отправлю только основную часть. У меня есть две таблицы, каждая из которых должна иметь ПК другого как FK. Почему я не могу добавить этот внешний ключ?
CREATE TABLE apartment
(
cod_apartment INT NOT NULL PRIMARY KEY,
cod_offer INT NOT NULL
);
CREATE TABLE offer
(
cod_offer INT NOT NULL PRIMARY KEY,
cod_apartment INT NOT NULL
);
Сначала я вставил значения обеих таблиц и работал, я мог бы даже искать с помощью «выберите * из ...». Но затем я попытался добавить внешний ключ:
Это сработало.
ALTER TABLE offer
ADD FOREIGN KEY (cod_apartment) REFERENCES apartment;
И это не так.
ALTER TABLE apartment
ADD FOREIGN KEY (cod_offer) REFERENCES offer;
Это сообщение об ошибке:
Оператор TABLE ALTER противоречили с ограничением FOREIGN KEY "FK__apartment__cod_offer__6383C8BA". Конфликт произошел в базе данных «kleber_apartment», таблице «dbo.offer», в столбце «cod_offer».
Проблема в том, что каждый раз, когда я пытаюсь выполнить, имя FK изменяется. И этого FK на самом деле не существует. Я уже сбросил обе таблицы и попытался вставить значения снова, но то же самое происходит.
Что может быть?
Являются ли данные в полях cod_offer этих двух таблиц совместимыми с ограничениями внешнего ключа? –
Зачем вам нужны внешние ключи, которые идут в обе стороны? Похоже, что это сделает добавление данных очень громоздким. –