Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL触发器在执行删除操作之前插入另一个表_Mysql_Sql_Triggers - Fatal编程技术网

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

MySQL触发器在执行删除操作之前插入另一个表,mysql,sql,triggers,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;$ 错误1363(HY000):删除触

我写过这样的东西,但这不起作用。怎么做

mysql> create trigger deleteStudentTrigger
-> before delete on tblStudent for each row
-> begin
-> insert into tblDeletedStudents select * from tblStudent where StudentId = new.StudentId;
-> end;$
错误1363(HY000):删除触发器上没有新行


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

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

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

错误消息说明了一切!是的,我知道。我把它贴出来是为了告诉你我试过什么,没有错。但是对tblDeletedStudents的插入操作没有发生。它不应该是
插入tblDeletedStudents值(old.StudentId,old.anothercolumn,…)
插入选择…
。在您的例子中,我将单独测试插入本身是否正常(这意味着两个表的表模式相同)