MySQL 的触发器添加出现Not allowed to return a result set from a trigger
浏览:2483次 出处信息
在做一个 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天十大热文
- [54] IOS安全–浅谈关于IOS加固的几种方法
- [52] android 开发入门
- [52] 如何拿下简短的域名
- [51] 图书馆的世界纪录
- [49] Go Reflect 性能
- [49] Oracle MTS模式下 进程地址与会话信
- [47] 【社会化设计】自我(self)部分――欢迎区
- [46] 读书笔记-壹百度:百度十年千倍的29条法则
- [37] 程序员技术练级攻略
- [29] 视觉调整-设计师 vs. 逻辑