最近阅读《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;
结果如下:
基于Nginx+Supervisord+uWSGI+Django1.11.1+Python3.6.5构建