create function COMP_STMT(activeSTMT varchar(200),activeSQL varchar(200)) RETURNS INT
BEGIN
PREPARE activeSTMT from activeSQL;
EXECUTE activeSTMT;
DEALLOCATE PREPARE activeSTMT;
return 1;
END;
错误:
ERROR 1064 (42000) at line 1: 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 '@activeSTMT from @activeSQL' at line 3
如何解决?
最佳答案
您需要使用字符串文字或包含语句文本的用户变量才能与 Mysql 中的 PREPARE/EXECUTE 语句一起使用。
BEGIN
set @actSQL= activeSQL;
PREPARE stmt FROM @actSQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
关于MySql 立即创建函数解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29204138/