所以我有三个表,申请人,空缺和一个链接表。我想在职位空缺被删除时删除申请人的资料。这是我目前的sql代码,这会删除申请人吗?
CREATE TABLE Applicant(
ID INT PRIMARY KEY,
name varchar(20),
address varchar(20),
VacancyID INT,
FOREIGN KEY (VacancyID) REFERENCES Vacancy(ID) ON DELETE CASCADE);
CREATE TABLE AppVac(
ApplicantID INT PRIMARY KEY,
VacancyID INT PRIMARY KEY,
FOREIGN KEY (ApplicantID) REFERENCES Applicant(ID),
FOREIGN KEY (VacancyID) REFERENCES Vacancy(ID);
CREATE TABLE Vacancy(
ID INT PRIMARY KEY,
.....
1条答案
按热度按时间aamkag611#
不,是的
Applicant
与Vacancy
. 删除的是中所有相应的行AppVac
.如果你想要求申请者至少有一行
AppVac
,则需要表上的delete触发器。级联外键不能为您做到这一点。也就是说,级联从引用表中删除delete,而不是从引用表中删除delete。