关于mysql trigger调用udf问题

yanebupt 2013-04-12 11:13:16
一个文件student.sql里内容
use yy;

DELIMITER |

DROP TRIGGER IF EXISTS student_trigger;
CREATE TRIGGER student_trigger
AFTER INSERT ON student
FOR EACH ROW BEGIN
SET @tt_json = (SELECT json_object(id,name) FROM student WHERE id = NEW.id LIMIT 1);
SET @tt_con = (SELECT redis_connect("10.1.60.125",6379));
SET @tt_resu = (SELECT redis_pipe(CONCAT("SET ",NEW.id," ",@tt_json,"\r\n")));

END |


DELIMITER ;


另一个文件student_new.sql内容


use yy;

DELIMITER |

DROP TRIGGER IF EXISTS student_update_trigger;
CREATE TRIGGER student_update_trigger AFTER UPDATE ON student;
FOR EACH ROW BEGIN
SET @tt_json = (SELECT json_object(id,name) FROM student WHERE id = NEW.id LIMIT 1);
SET @tt_con = (SELECT redis_connect("10.1.60.125",6379));
SET @tt_resu = (SELECT redis_pipe(CONCAT("SET ",NEW.id," ",@tt_json,"\r\n")));
END |

DELIMITER;



导入student_new.sql成功,导入student_new.sql提示:
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 ';
FOR EACH ROW BEGIN
SET @tt_json = (SELECT json_object(id,name) FROM studen' at line 1


请大家帮忙看下,两个触发器操作是一样的,为什么一个成功一个不成功,看了n久都没看出问题。
...全文
205 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
SQL77 2013-04-12
  • 打赏
  • 举报
回复
引用 楼主 yangyan19870319 的回复:
一个文件student.sql里内容 use yy; DELIMITER | DROP TRIGGER IF EXISTS student_trigger; CREATE TRIGGER student_trigger AFTER INSERT ON student FOR EACH ROW BEGIN SET @tt_json = (SELECT json_obje……
SET @tt_json = (SELECT json_object(id,name) FROM studen' at line 1 错误是说你这条语句附近有问题啊.有什么特殊空格?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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