MySQL 的触发器添加出现Not allowed to return a result set from a trigger
浏览:3067次 出处信息
在做一个 Gearman 来现在一个分布式时,我想当 MySQL 有更新时,自动的使用 MySQL 的触发器来提交更新到集群的队列中,在这个项目中,看到 MySQL 的触发器(TRIGGER)非常合适和 Gearman 的 UDF 配合来工作然后使用 MySQL 的自定义变量来做参数提交。
所以学着写了一下 MySQL 触发器,但是当我写完插入数据时,MySQL 总是报错:
Not allowed to return a result set from a trigger 。
发现触发器(TRIGGER)不能使用 select 来设置变量结果, 这样会返回结果集,如果在触发器(TRIGGER)中要写成 into 的方式
出错的触发器语法
delimiter | CREATE TRIGGER queue_insert AFTER INSERT ON queue FOR EACH ROW BEGIN SELECT @args = concat(NEW.id,'|',NEW.title) ; IF NEW.priority >= 1 THEN SET @gd = gman_do_high_background('convert',@args); ELSE SET @gd = gman_do_background('convert',@args); END IF; END; | delimiter;
必须写成下面这样
delimiter | CREATE TRIGGER queue_insert AFTER INSERT ON queue FOR EACH ROW BEGIN SELECT concat(NEW.id,'|',NEW.title) INTO @args; IF NEW.priority >= 1 THEN SET @gd = gman_do_high_background('convert',@args); ELSE SET @gd = gman_do_background('convert',@args); END IF; END; | delimiter;
参考资料:http://dev.mysql.com/doc/refman/5.1/zh/triggers.html
建议继续学习:
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:你的数据库过度 Sharding 了吗
后一篇:分析MySQL的授权许可 >>
文章信息
- 作者:扶凯 来源: 扶凯
- 标签: 触发器
- 发布时间:2011-05-25 13:50:07
近3天十大热文
-
[899] WordPress插件开发 -- 在插件使用 -
[135] 解决 nginx 反向代理网页首尾出现神秘字 -
[56] 整理了一份招PHP高级工程师的面试题 -
[55] Innodb分表太多或者表分区太多,会导致内 -
[53] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] 全站换域名时利用nginx和javascri -
[52] CloudSMS:免费匿名的云短信 -
[52] 海量小文件存储 -
[52] 用 Jquery 模拟 select -
[51] 分享一个JQUERY颜色选择插件
