gpt4 book ai didi

mysql - 在 MYSQL 中捕获错误

转载 作者:行者123 更新时间:2023-11-30 23:34:28 25 4
gpt4 key购买 nike

我想实现一个批处理 MySQL 脚本来在数据库中做一些事情。问题是,对于我拥有的每个主 ID,我想插入 4 个元组。但是这个元组应该添加到事务中,这意味着如果这 4 个元组之一失败,则事务应该回滚。然后我需要有一些捕获机制来捕获查询失败。我只能使用纯 MYSQL,既不能使用 PHP,也不能使用 PERL 等。即使我不能创建任何存储过程来做到这一点。在 Microsoft SQL Server 中,@@error 变量解决了我的问题,但在 MYSQL 中,我们没有任何显示错误代码的系统变量。我该怎么做?

干杯,

最佳答案

这是一个丑陋的解决方法,但当我尝试导入一批 SQL 查询并将整个事情包装在一个事务中时,它对我有用,这样我就可以在任何 SQL 查询出错时回滚。

由于批处理的大小很大,带有条件处理程序的 SQL 过程也不是一个选项。

您必须手动执行此操作,因此除非您进行批处理,否则这真的不是解决方案:

首先,确保您的整个批处理都存储在一个 SQL 文件中。 SQL文件应该只包含批查询,没有事务控制查询。

然后启动 MySQL 命令行客户端并手动输入事务命令:

mysql> SET AUTOCOMMIT = 0;
mysql> START TRANSACTION;

然后告诉命令行客户端运行批处理文件:

mysql> SOURCE path/to/file.sql

之后,您可以简单地手动 COMMIT;ROLLBACK;,具体取决于您对查询结果的满意程度。

不过,这实在是太糟糕了。谁有更好的方法?

关于mysql - 在 MYSQL 中捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8761932/

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