MySQL触发器在删除操作之前插入另一个表

标签 mysql sql triggers

我写了这样的东西,但它不起作用。怎么办?

mysql> create trigger deleteStudentTrigger
-> before delete on tblStudent for each row
-> begin
-> insert into tblDeletedStudents select * from tblStudent where StudentId = new.StudentId;
-> end;$

ERROR 1363 (HY000): There is no NEW row in on DELETE trigger

最佳答案

如错误中所述,没有新行,只有旧行(因为当您删除某些内容时,它不是新的,您知道) 所以应该是这样

mysql> create trigger deleteStudentTrigger
-> before delete on tblStudent for each row
-> begin
-> insert into tblDeletedStudents select * from tblStudent where StudentId = old.StudentId;
-> end;$

有关更多信息,请参阅 MySQL 文档

关于MySQL触发器在删除操作之前插入另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43841751/

相关文章:

sql - 使用SQL Server 2008r2中的自联接表聚合数据

mysql - 如何防止 "note : Table does not support optimize, doing recreate + analyze instead"

php - MySQL 删除具有指定关键字的组中的所有内容,但最多

mysql - 几个名字的列表,用相同的信息更新他们在表中的行

mysql - 数据透视表以外的其他方式 - 增量

c# - 组合框触发空选择

mysql - 比较2列值后如何按升序排序并且条件以较低者为准?

java - 当从 PreparedStatement.close 引发 SQLException 时,我应该采取什么措施?

MySQL触发器以某种方式导致提交

MySQL触发: after an update on table1,从table2中删除行?