最近阅读《MySQL必知必会》一书时,有关触发器那一章有个实例代码无法正确运行,书中代码为:
CREATE TRIGGER newproduct AFTER INSERT ON products
FOR EACH ROW SELECT 'Product added';
执行的时候会报ERROR 1415 (0A000): Not allowed to return a result set from a trigger的错误。MySQL5早期版本是支持的,现在的新版本已经不支持这种写法。触发器不允许出现SELECT *的形式,因为这会返回一个结果集,而这是不允许的,所以会报出这种错。
触发器中可以使用SELECT INTO的形式来进行查询,将结果放进一个变量,然后查询该变量。
CREATE TRIGGER newproduct AFTER INSERT ON products
FOR EACH ROW SELECT 'Product added' INTO @arg;
整个实验结果如下:
乐于分享
最后放上笔者和几位好朋友(其中有博士、硕士、教师、工程师)一起用来记录分享的公众号【淹没在互联网的浪潮】,里面会分享心路历程、学习心得、各种经验等方面,不限于技术和学习,同时也会分享我们的所见所闻。如果有需要的话可以关注一下,有什么想看的分享话题也可以直接在公众号文章下留言。希望对大家能有所帮助,少走些弯路!