MySql 立即创建函数解决方案

MySql Create Function Solutions Immediately

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