Hello Stackoverflow人员
我有一个名为
的父表和两个子表叫:
我想要实现的是当我从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) );