Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 不允许从触发器返回结果集_Mysql - Fatal编程技术网

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语句不能返回任何内容,它不能返回存储过程的结果集,因此您不应该尝试在触发器内返回结果集。

这不是重复的,答案是:?可能是重复的