我有3个表,申请人,空缺职位和一个链接表。我试图在删除空缺职位时删除申请人的数据。以下是我当前的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,
.....
不会。Applicant
毫无关系 Vacancy
. 被删除的是 AppVac
.
如果你想要求申请人至少有一行在 AppVac
那么你就需要在表上设置一个删除触发器。 级联外键不会帮你做到这一点。 也就是说,级联删除从表中删除。指的 表,而不是从 参考 表: