Есть несколько проблем с вашим кодом:
неправильный синтаксис определения вашего первичного ключа;в определении внешнего ключа должно быть CONSTRAINT <constraint_name> PRIMARY KEY (S#, P#)
, в ключевом слове REFERENCES
отсутствует окончательный S
Рассмотрим:
CREATE TABLE SP (
S# CHAR(2) NOT NULL,
P# CHAR(2) NOT NULL,
QTY INTEGER,
CONSTRAINT SP_PK PRIMARY KEY (S#, P#),
FOREIGN KEY (S#) REFERENCES Supplier(S#) ON DELETE CASCADE
);
Демонстрация на скрипте БД
Напоминание: обратите внимание, что столбец, на который ссылается первичный ключ, должен быть уникальным или первичнымвведите ссылочную таблицу (т. е. столбец S#
должен быть первичным ключом таблицы Supplier
или иметь ограничение UNIQUE
).