您的位置:首页 > 数据库

ERROR 1336 (0A000): Dynamic SQL is not allowed in stored function or trigger

2012-05-08 15:19 726 查看

Dynamic SQL is not allowed in stored function or trigger

关于 mysql 的这个错误:

导致的原因是 :

1. 在function或者是trigger里面执行了动态sql语句。

2. 是在function或者是trigger里面调用了含有动态sql语句的存储过程

单独在存储过程里面执行动态sql语句是没有问题的。

解决的办法:

目前最新的mysql版本来说 function trigger还是不支持 动态sql语句的。

当然可以绕开数据库 用应用程序来解决是最好的了。

要是硬要用数据库的办法来解决的话 :(以function为例子)

我的办法是 :

1. 生成一张存储 function 所执行的所有语句到临时表中(包括调用其他procedure产生的ddl ,dml语句)

(此时的过程返回的结果 应该也是以字符串的格式 将产生的ddl ,dml语句插入到临时表中去)

2. 遍历顺序执行临时表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐