gpt4 book ai didi

mysql - 在 MySQLWorkbench 中使用事务执行存储过程总是自动提交?

转载 作者:行者123 更新时间:2023-11-28 23:48:17 24 4
gpt4 key购买 nike

我有这个 STP:

CREATE DEFINER=`user1`@`%` PROCEDURE `test`(
OUT result TINYINT
)
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
SET result = -1;
ROLLBACK;
END;

START TRANSACTION;
INSERT INTO testtable (field1, field2) VALUES (11, 22);
SET result = 1;
END

在 MySQLWorkbench (6.3 64b) 中执行后,testtable 有新记录。我虽然不能提交数据,因为没有提交语句。

然后我尝试通过 C# 客户端再次调用该 STP,这次没有提交新数据。

请帮我解释一下这个问题,我不明白在Workbench中调用STP和通过另一个客户端调用STP有什么不同。

谢谢。

最佳答案

不同之处在于,当您在 mysql workbench 中再次查询表时,您处于同一个 session 中。即使您的更改尚未提交,即使您的更改未提交,您仍然可以看到它们,因为允许同一客户端 session 查看未提交的更改。

但是,如果您启动 mysql workbench 或 mysql shell 的新 session ,您将看不到通过现有 workbench session 所做的更改。

关于mysql - 在 MySQLWorkbench 中使用事务执行存储过程总是自动提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33062319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com