mysql Not allowed to return a result set from a trigger

shashadezhu888 2010-11-23 04:36:10
今天在学习mysql时,创建触发器总是不成功报这个错Not allowed to return a result set from a trigger;
比如这样创建 create trigger newproduct after insert on products for each row select 'd'; 把

后面的返回结果去掉,还是报错:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at
line 1
有谁知道原因的,帮帮忙
...全文
1264 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
bizai2214 2011-06-24
  • 打赏
  • 举报
回复
那个提示明显就是在说你语法错了
WWWWA 2010-11-23
  • 打赏
  • 举报
回复
将$$->//
zuoxingyu 2010-11-23
  • 打赏
  • 举报
回复
DELIMITER //
CREATE TRIGGER newproduct AFTER INSERT ON products
FOR EACH ROW
SELECT 'd' INTO @ee;
//
DELIMITER ;
shashadezhu888 2010-11-23
  • 打赏
  • 举报
回复
这样写是对了,但对于不要返回结果的还是出错:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at
line 1
为啥我用//代替不行呢,非得用$$符号才行么?能给个解释么?谢谢[Quote=引用 11 楼 wwwwa 的回复:]
DELIMITER $$
CREATE TRIGGER newproduct AFTER INSERT ON products
FOR EACH ROW
SELECT 'd' INTO @ee;
$$
DELIMITER ;
[/Quote]
zuoxingyu 2010-11-23
  • 打赏
  • 举报
回复
已经提示了啊。触发器中不能返回记录集。

MYSQL就是这么规定的,没什么好说的。
ACMAIN_CHM 2010-11-23
  • 打赏
  • 举报
回复
create trigger newproduct after insert on products for each row select 'd';

触发器中不能有这种 select 'd'; 的语句,这个语句会返回结果集。
WWWWA 2010-11-23
  • 打赏
  • 举报
回复
DELIMITER $$
CREATE TRIGGER newproduct AFTER INSERT ON products
FOR EACH ROW
SELECT 'd' INTO @ee;
$$
DELIMITER ;
shashadezhu888 2010-11-23
  • 打赏
  • 举报
回复
文章中我已经写过了,去掉结果,还是会有错的:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at
line 1
[Quote=引用 8 楼 wwwwa 的回复:]
已经提示,在TRIGGER中不能返回结果集
[/Quote]
shashadezhu888 2010-11-23
  • 打赏
  • 举报
回复
哪里啊,麻烦指出来吧 ,我都一个字母一个字母扣的,没发现错误啊[Quote=引用 6 楼 mr_mablevi 的回复:]
语法都错了..- -#
[/Quote]
WWWWA 2010-11-23
  • 打赏
  • 举报
回复
已经提示,在TRIGGER中不能返回结果集
shashadezhu888 2010-11-23
  • 打赏
  • 举报
回复
哪里,没有发现,麻烦指出来吧 [Quote=引用 5 楼 shashadezhu888 的回复:]
引用 1 楼 acmain_chm 的回复:
你的代码是什么? 不贴出来的话。

大家只能回答你说“ 你的代码写错了!” 这是唯一能保证正确的答案。


问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)

create trigger newproduct after insert on products for each row select 'd';
就是这句啊
[/Quote]
小小小小周 2010-11-23
  • 打赏
  • 举报
回复
语法都错了..- -#
shashadezhu888 2010-11-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 acmain_chm 的回复:]
你的代码是什么? 不贴出来的话。

大家只能回答你说“ 你的代码写错了!” 这是唯一能保证正确的答案。


问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)
[/Quote]
create trigger newproduct after insert on products for each row select 'd';
就是这句啊
WWWWA 2010-11-23
  • 打赏
  • 举报
回复
完整代码是什么
shashadezhu888 2010-11-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 shashadezhu888 的回复:]
今天在学习mysql时,创建触发器总是不成功报这个错Not allowed to return a result set from a trigger;
比如这样创建 create trigger newproduct after insert on products for each row select 'd'; 把

后面的返回结果去掉,还是报错:
ERROR 1064 (42000……
[/Quote]就是执行sql语句时出的这个错,我的mysql是5.0的
WWWWA 2010-11-23
  • 打赏
  • 举报
回复
代码贴出来
ACMAIN_CHM 2010-11-23
  • 打赏
  • 举报
回复
你的代码是什么? 不贴出来的话。

大家只能回答你说“ 你的代码写错了!” 这是唯一能保证正确的答案。


问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧

56,940

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧