Mysql DELETE ON CASCADE не будет работать
Привет люди Stackru
У меня родительская таблица называется
- персонаж_,
а две дочерние таблицы называются:
- Learned_Skills
- Learned_Talents
То, чего я пытаюсь достичь, это когда я удаляю человека из Character_, он также удаляет всю информацию из таблиц Learned_skills и Learned_Talents. Я знаю, что требуется ON DELETE CASCADE, однако, когда я пытаюсь удалить человека, он не удаляет информацию о дочерних таблицах, что я делаю неправильно?
CREATE TABLE character_ (
Name_ varchar (30) NOT NULL,
Class varchar (30),
World_Type varchar (15),
Str integer ,
WS integer ,
BS integer ,
Fel integer ,
Per integer ,
Int_ integer ,
Agi integer ,
WP integer ,
Tough integer ,
PRIMARY KEY (Name_) ,
FOREIGN KEY (Class) REFERENCES Class(Class_name),
FOREIGN KEY (World_Type) REFERENCES World_Type(Name_) );
CREATE TABLE Learned_Talents (
Character_Name varchar (30) NOT NULL,
Talent_Name varchar (40) NOT NULL,
PRIMARY KEY (Character_Name,Talent_Name),
FOREIGN KEY (Character_Name) REFERENCES character_(Name_) ON DELETE CASCADE,
FOREIGN KEY (Talent_Name) REFERENCES Talents(TalentName) );
CREATE TABLE Learned_Skills (
Character_Name varchar (30) NOT NULL,
Skill_Name varchar (40) NOT NULL,
PRIMARY KEY (Character_Name,Skill_Name),
FOREIGN KEY (Character_Name) REFERENCES character_(Name_) ON DELETE CASCADE,
FOREIGN KEY (Skill_Name) REFERENCES Skills(SkillName) );