我用SQLyog作为 MYSQL 的客户端。
我想执行 SQL 脚本并可选择提交或回滚(与客户端 SQLDeveloper 一样)。如何使用 SQLyog 实现此操作?我搜索了网络和帮助,但无济于事。
答案1
如果您使用 启动 DB 会话START TRANSACTION
,则所有内容将通过 MVCC 进行控制,并且您必须执行COMMIT
。如果 DB 连接终止(自愿或非自愿),所有内容都将回滚。
您也可以SET autocommit = 0;
在您的会话中禁用它。
请确保所有涉及的表都是 InnoDB
如果 UPDATE 连接和 DELETE 连接中涉及的任何表涉及 InnoDB 和 MyISAM 的混合,则对 MyISAM 表的更改将不会回滚,因为它不支持符合 ACID 的事务。
答案2
根据这文章中每个客户端连接到 mysql 时都启用了自动提交。
您可以禁用它并像在 SQLdeveloper 中一样使用回滚。但与 SQLdeveloper 不同的是,您需要手动执行提交语句。