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) );

0 ответов

Другие вопросы по тегам