MySQL 的触发器添加出现Not allowed to return a result set from a trigger
浏览:2435次 出处信息
在做一个 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天十大热文
- [104] Go Reflect 性能
- [14] 在JavaScript中什么时候使用==是正
- [14] 基于HTTP缓存轻松实现客户端应用的离线支持
- [14] 我的git笔记
- [13] osx平台上lol英雄联盟launcher启
- [13] 公钥私钥加密解密数字证书数字签名详解
- [11] Joomla反序列化漏洞的查漏补缺
- [11] 正态分布的前世今生(一)
- [11] Linux内存中的Cache真的能被回收么?
- [10] 相似度计算之马氏距离