MySQL 的触发器添加出现Not allowed to return a result set from a trigger
浏览:2530次 出处信息
在做一个 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天十大热文
-
[93] memory prefetch浅析
-
[51] 基本排序算法的PHP实现
-
[38] find命令的一点注意事项
-
[35] 深入浅出cassandra 4 数据一致性问
-
[34] Oracle bbed工具的编译
-
[33] JS中如何判断字符串类型的数字
-
[31] js数组去重
-
[31] Inline Form Labels
-
[27] 两行 JavaScript 代码
-
[26] 8大实用又重要Mac使用技巧