gpt4 book ai didi

mysql 触发删除原始数据

转载 作者:行者123 更新时间:2023-11-29 08:51:39 25 4
gpt4 key购买 nike

我有两个表,分别是学生和证书,当从学生表中删除学生时,我需要从证书表中删除与特定学生相关的证书。我对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

当您从学生表中删除学生时 - 所有相关证书也将被删除。我认为它比触发器更好,因为如果您或某人禁用触发器(意外或故意),您的数据库将不一致。

关于mysql 触发删除原始数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11027622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com