+ -
当前位置:首页 → 问答吧 → mysql创建触发器问题

mysql创建触发器问题

时间:2011-12-21

来源:互联网

我想在mysql上创建一个触发器,原代码如下
CREATE TRIGGER comment_afterdelete_on_mynew
before DELETE ON tb1_mynew
FOR EACH ROW
BEGIN
select * from tb1_mynew;
END
不知道为什么老是报第五行有语法错误,也就是我把select语句去掉就可以用了,但我单独测试过这个select语句是正确的
我该怎么解决。
我的mysql是linux上的,版本号是5.0.45

作者: wgczxm   发布时间: 2011-12-21

已经提示:
Not allowed to return a result set from a trigger

在TRIGGER中不能返回结果集,你要达到什么目的

作者: WWWWA   发布时间: 2011-12-21

我其实是想在触发器里做一个删除语句,但无论我在触发器里写什么sql语句都会报语法错误。我已经在外部验证过这些语句都是正确的。我改过里面的语句,改成delete也是不对的。

作者: wgczxm   发布时间: 2011-12-21

你的代码?不能对本表进行操作
delimiter $$
CREATE TRIGGER comment_afterdelete_on_mynew
before DELETE ON tb1_mynew
FOR EACH ROW
BEGIN
sql 语句;
END;$$
delimiter ;

作者: WWWWA   发布时间: 2011-12-21

我的代码不是对本表 而是对另外一张表啊。

作者: wgczxm   发布时间: 2011-12-21

用3楼格式修改你的TRIGGER

作者: WWWWA   发布时间: 2011-12-21

好的,我试试看;

作者: wgczxm   发布时间: 2011-12-21

实验过了,不行。语法错误,这次变成delimiter $$有语法错误了;

作者: wgczxm   发布时间: 2011-12-21

引用 7 楼 wgczxm 的回复:

实验过了,不行。语法错误,这次变成delimiter $$有语法错误了;

代码是什么,在命令行下输入?

作者: WWWWA   发布时间: 2011-12-21

TRIIGER 中不可以有返回记录集的语句。 你的这个 select * from tb1_mynew; 会返回结果集。 希望通过这个语句实现什么功能? 不会是在DELETE的时候还需要显示一下 select * from tb1_mynew; 吧。

作者: ACMAIN_CHM   发布时间: 2011-12-21