mysql忽略事务报错
时间: 2023-07-05 22:35:55 浏览: 111
忽略事务报错是不建议的做法,因为事务报错很可能是由于数据完整性或约束问题引起的,如果忽略报错,可能会导致数据不一致性或错误的结果。但是,如果你非常确定忽略错误不会导致严重的问题,可以使用以下语句来忽略事务报错:
```
SET @@SESSION.autocommit=0;
START TRANSACTION;
-- your SQL statements here
COMMIT;
SET @@SESSION.autocommit=1;
```
这里的 `@@SESSION.autocommit` 选项是用来控制是否自动提交事务的,将其设为 0 表示关闭自动提交,然后使用 `START TRANSACTION` 开始一个新的事务,执行你的 SQL 语句,即使出现错误也不会自动回滚事务。最后再使用 `COMMIT` 提交事务,最后再将 `@@SESSION.autocommit` 设置为 1,表示恢复自动提交。
相关问题
在配置文件中修改全局忽略
在 MySQL 配置文件 `my.cnf` 或者 `my.ini` 中可以设置全局忽略事务报错的选项,这样所有的连接都将具有此设置。在 `[mysqld]` 部分中添加以下行:
```
sql_mode=NO_ENGINE_SUBSTITUTION
```
这里的 `NO_ENGINE_SUBSTITUTION` 是一个 SQL 模式选项,它不会忽略所有的事务报错,但是会忽略一些错误,例如在创建表时指定的存储引擎不存在,会自动使用默认的存储引擎来代替。
注意,修改配置文件需要重启 MySQL 服务才能生效。建议只在非生产环境下使用此方法。在生产环境下,应该仔细检查并解决事务报错,以确保数据的完整性和稳定性。
阅读全文