Вот мое решение:
CREATE TABLE filmy
(
Film_Id int NOT NULL,
Nazwa varchar(250) NULL,
Adres varchar(250) NULL,
Data_Utworzenia date DEFAULT '0000-00-00',
Komentarz varchar(250) NULL,
Gat_Id int NULL,
Sub_Id int NULL,
Aut_Id int NULL,
User_Id int NULL,
Primary Key (Film_Id, Gat_Id, Sub_Id, Aut_Id, User_Id )
) ENGINE=INNODB;
Ограничения по внешнему ключу выполняются после создания gat, sub, aut & user или иначе, если я не знаю, существуют ли две таблицы, чтобы сделать ограничение таблицы реальностью!
Попробуйте: alter table filmy добавить ограничение gatfilmy внешний ключ (gat_id) ссылается на gat (gat_id) при обновлении ограничение при удалении ограничение
ты должен быть последовательным; или назовите таблицу gat или gatunek, это не может быть и то и другое. Как процессор узнает, что такое gat или gatunek, если вы не определите их обоих?
Теперь попробуйте использовать остальные ограничения и помните, что вам нужно создать все таблицы, прежде чем вы сможете их изменить!
CONSTRAINT fk_GatFilmy FOREIGN KEY (Gat_Id) REFERENCES gatunek(Gat_Id),
CONSTRAINT fk_SubFilmy FOREIGN KEY (Sub_Id) REFERENCES subgatunek(Sub_Id),
CONSTRAINT fk_AutFilmy FOREIGN KEY (Aut_Id) REFERENCES autor(Aut_Id),
CONSTRAINT fk_UserFilmy FOREIGN KEY (User_Id) REFERENCES users(User_Id)