UDF 触发器不起作用 MySQL ERROR 1064 (42000)

Posted

技术标签:

【中文标题】UDF 触发器不起作用 MySQL ERROR 1064 (42000)【英文标题】:UDF trigger not working MySQL ERROR 1064 (42000) 【发布时间】:2017-05-27 11:54:00 【问题描述】:

代码如下:

DELIMITER @@

CREATE TRIGGER autohome1

AFTER INSERT ON prueba 

DECLARE cmd VARCHAR(255);

SET cmd=CONCAT('sh /home/pi/Desktop/Py_Script_Auto_Home/autohome.sh');

sys_exec(cmd);

@@

DELIMITER ;

所以我怀疑错误来自 CONCAT 函数,但我不确定,因为我尝试了很多不同的选项来尝试解决它,我还查看了论坛中之前关于此主题的问题。

我得到的错误如下:

ERROR 1064 (42000): 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 'DECLARE cmd VARCHAR(255);
SET cmd=CONCAT('sh /home/pi/Desktop/Py_Script_Auto_Hom' at line 3

先谢谢

【问题讨论】:

【参考方案1】:
DELIMITER @@
CREATE TRIGGER autohome1 AFTER INSERT ON prueba 
FOR EACH ROW
BEGIN
   DECLARE cmd VARCHAR(255);
   ...
END
@@
DELIMITER ;

【讨论】:

以上是关于UDF 触发器不起作用 MySQL ERROR 1064 (42000)的主要内容,如果未能解决你的问题,请参考以下文章

MySql - 触发器不起作用 - 中止插入

插入触发器后MySQL不起作用

MySQL 5.5.30 级联触发器不起作用

MySQL触发器正则表达式不起作用

引发错误在 MySQL 触发器中不起作用

Pyspark 子字符串在 UDF 内部不起作用