使用一组 LOAD DATA INFILE 进行 MYSQL 回滚

MYSQL Rollback with a set of LOAD DATA INFILE

提问人:Mandy Li 提问时间:8/14/2023 最后编辑:ShadowMandy Li 更新时间:8/14/2023 访问量:61

问:

我使用批处理文件通过许多 LOAD DATA INFILE 命令从 CSV 文件加载我的表。当表的某个 LOAD 语句期间发生错误时,仅对具有 0 行的表进行回滚,而其他表中的数据将保持提交状态。请告知如何使此交易绑定。我在这里发现了一篇类似的文章 MySQL:从 sql 脚本文件在 Transaction 中执行 LOAD 语句,但是没有答案。

mysql load-data-infile

评论

1赞 tadman 8/14/2023
“批处理文件”在这里具体意味着什么?
0赞 Mandy Li 8/14/2023
在文件中加载一组数据,如下所示:SET AUTOCOMMIT=0;开始交易;将数据文件“file1.CSV”加载到表中 表1字段以“,”结尾,用“”“括起来;将数据文件“file2.CSV”加载到表中 表2字段以“,”结尾,用“”“括起来;. . .将数据文件加载到“fileN.CSV”的表中 表N字段以“,”结尾,用“”“括起来;犯;
1赞 tadman 8/14/2023
与其他数据库不同,MySQL没有对模式更改的事务支持,因此无法将其全部锁定在事务中。您可能需要手动放松。
1赞 Barmar 8/15/2023
@tadman LOAD DATA 不是架构更改。
1赞 Barmar 8/15/2023
您使用的是什么存储引擎?文档提到这会导致NDB的隐式提交。LOAD DATA

答: 暂无答案