如何创建删除后触发器
Posted
技术标签:
【中文标题】如何创建删除后触发器【英文标题】:How to create an after delete trigger 【发布时间】:2021-05-11 01:52:23 【问题描述】:我正在尝试在教授表上创建一个 AFTER DELETE 触发器,当 ProfessorName/Program 被删除时,它会将删除的内容插入到表professor_audit_trail 中
CREATE TRIGGER trg_Delprofessor
ON `lab7`.`professor`
AFTER DELETE AS
BEGIN
INSERT INTO professor_audit_trail
SELECT `professor`.`ProfessorName`, `professor`.`ProfessorProgram`
FROM Deleted
end;
表:professor
列:
ProfessorName
ProfessorProgram
表:professor_audit_trail
它会在您的语法中输出 1064 错误
【问题讨论】:
请在问题中添加整个错误消息输出。 请提供清楚的错误信息 【参考方案1】:在 mysql 上创建触发器的语法可能与其他 sql 服务器不同。 正确的语法应该是:
delimiter $$
CREATE TRIGGER `trg_Delprofessor`
AFTER DELETE ON `lab7`.`professor` FOR EACH ROW
BEGIN
INSERT INTO professor_audit_trail(`ProfessorName`, `ProfessorProgram`)
values (old.ProfessorName, old.ProfessorProgram);
END $$
delimiter ;
欲了解更多信息MySQL TRIGGER SYNTAX
【讨论】:
单语句触发器不需要在 BEGIN-END 和分隔符重新分配。以上是关于如何创建删除后触发器的主要内容,如果未能解决你的问题,请参考以下文章