Задать вопрос
@furyon

Зачем FOREIGN KEY без CONSTRAINT?

Здравствуйте!
В общем создаю 2 таблицы и внешний ключ из 2й в 1ю:
CREATE TABLE tbl_1 (
  id SERIAL PRIMARY KEY
);

CREATE TABLE tbl_2 (
  id     SERIAL PRIMARY KEY,
  tbl_id INT
);
ALTER TABLE tbl_2 ADD CONSTRAINT tbl_2_tbl_1__fk FOREIGN KEY (tbl_id) REFERENCES tbl_1;

Пытаюсь вставить без связанной запии и получаю ошибку, это правильно:
INSERT INTO tbl_2 (tbl_id) VALUES (1);

Далее удаляю CONSTRAINT и запись вставляется
ALTER TABLE tbl_1 DROP CONSTRAINT tbl_1_pkey CASCADE;
INSERT INTO tbl_2 (tbl_id) VALUES (1);


Немогу понять, FOREIGN KEY остается но по сути ничего не делает (или делает?), зачем так сделано?
Спасибо.
  • Вопрос задан
  • 420 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
FOREIGN KEY это и есть CONSTRAINT tbl_1_pkey
т.е. этой командой
ALTER TABLE tbl_1 DROP CONSTRAINT tbl_1_pkey CASCADE;

вы удалили FOREIGN KEY
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы