Mysql 不允许从触发器返回结果集
我有问题: 我创建了一个过程:Mysql 不允许从触发器返回结果集,mysql,Mysql,我有问题: 我创建了一个过程: CREATE PROCEDURE `tran_sp` () BEGIN SELECT 'procedure runned!'; END $ 这很有效 mysql> CALL tran_sp()$ +-------------------+ | procedure runned! | +-------------------+ | procedure runned! | +-------------------+ 1 row in set (0.00
CREATE PROCEDURE `tran_sp` ()
BEGIN
SELECT 'procedure runned!';
END
$
这很有效
mysql> CALL tran_sp()$
+-------------------+
| procedure runned! |
+-------------------+
| procedure runned! |
+-------------------+
1 row in set (0.00 sec)
然后我创建了触发器:
mysql> CREATE TRIGGER my_trigger1
-> AFTER INSERT ON users
-> FOR EACH ROW
-> BEGIN
-> CALL tran_sp();
-> END$
mysql> INSERT INTO users VALUES(166,156)$
错误1415(0A000):不允许从触发器返回结果集
mysql>
请帮帮我。例外情况是我认为已经足够清楚了 您可以在触发器内执行其他操作(调用SP、执行插入/更新/删除操作等),但所有这些操作都不允许返回任何结果 这意味着,不允许使用包含简单select语句的SP。例如,如果您在循环中使用此select语句来执行更新或类似操作,这是允许的,因为您不会返回任何内容
原因是,insert/update/delete语句不能返回任何内容,它不能返回存储过程的结果集,因此您不应该尝试在触发器内返回结果集。这不是重复的,答案是:?可能是重复的