mysql在删除原始数据时触发

mysql在删除原始数据时触发,mysql,triggers,Mysql,Triggers,我有两个表作为学生和证书,当从学生表中删除学生时,我需要从证书表中删除与特定学生相关的证书。我对mysql触发器不太熟悉。请帮助我 这是我尝试过的,但我不确定它是否正确 DELIMITER $$ CREATE TRIGGER delCerts AFTER DELETE ON students FOR EACH ROW BEGIN DELETE FROM certificates as certs WHERE certs.stCode = students.stCode; END; $$ 在

我有两个表作为学生和证书,当从学生表中删除学生时,我需要从证书表中删除与特定学生相关的证书。我对mysql触发器不太熟悉。请帮助我

这是我尝试过的,但我不确定它是否正确

DELIMITER $$  
CREATE TRIGGER delCerts AFTER DELETE ON students
FOR EACH ROW
BEGIN
DELETE FROM certificates as certs WHERE certs.stCode = students.stCode;
END;
$$

在InnoDB数据库中,您可以通过在证书表中使用外键来实现:

idStudent INT NOT NULL,
FOREIGN KEY (idStudent) REFERENCES Students (id)
  ON DELETE CASCADE
  ON UPDATE CASCADE
从stuends表中删除学生时,所有相关证书也将被删除。我认为这比触发器好,因为如果您或某人(意外或故意)禁用触发器,您的数据库将不一致。

请写“删除前”,而不是“删除后”,并告知我们