在MySQL数据库的触发器程序中,如果使用“SELECT @v := f FROM...”形式的语句给变量赋值,执行时会报错,提示:“Not allowed to return a result set from atrigger”。
原因是:触发器不允许返回数据集,以致由触发器所调用的存储过程或函数也不可以返回数据集,这是MySQL
的限制。
解决办法是:将语句形式改为“SELECT f INTO @v FROM ...”。
此问题在MySQL官方网论坛上也有人提出,请参考链接:
http://forums.mysql.com/read.php?99,108159,108159
附加说明:
欲想通过一个SELECT语句对多个变量赋值,请采用以下语句形式:
SELECT id,name INTO @v1,@v2 FROM ...