У меня есть инструкции по созданию двух таблиц:
CREATE TABLE S
(
c INT PRIMARY KEY,
d INT
);
CREATE TABLE R
(
a INT PRIMARY KEY,
b INT REFERENCES S(c)
);
R(a,b)
имеет 4 строки: (0,4),(1,5),(2,4),(3,5)
S(c,d)
также имеет 4 строки: (2,10),(3,11),(4,12),(5,13)
Учитывая эту информацию, мне нужно выбрать, какая из следующих модификаций НЕ будет отклонена из-за нарушения ограничения (синтаксис здесь не рассматривается):
Запрос (а)
INSERT INTO S
VALUES (3, 3)
Запрос (б)
INSERT INTO S
VALUES (4, 4)
Запрос (с)
DELETE (5, 13) FROM S
Запрос (d)
DELETE (4, 12) FROM S
Мне трудно ответить на этот вопрос, так как я считаю, что все варианты будут отклонены.
Я не могу вставить (3, 3)
или (4, 4)
в S
, потому что c является первичным ключом, поэтому я не могу вставить значения, которые будут повторяться в c.
И я не могу удалить (5, 13)
и (4, 12)
из S
, потому что столбец b в таблице R
указывает на столбец c, если эти строки удаляются, столбец b будет указывать на то, что не существует что приведет к ошибке.
Я что-то упустил?