我正在研究将 CSV 文件 ( customers.csv
) 导入 MySQL 表 ( customers
) 的PHP 脚本。
在将 CSV 文件的内容插入 mysql 表之前,我首先备份原始customers
表。
我将整个导入过程(包括备份)包装在一个 mysql 事务中(以解决 CSV 在中间某处损坏的情况,并确保导入是原子的)。
问题是当我在INSERT INTO
语句之后立即调用它时 ROLLBACK 似乎不起作用:通过 phpMyAdmin 检查数据库时,我可以看到新创建的表和 ROWS INSIDE IT 在 rollback 后仍然存在。
以下是操作日志:
[2015-01-19 14:08:11] DEBUG: "START TRANSACTION" [] []
[2015-01-19 14:08:11] DEBUG: SHOW TABLES LIKE :table_name; [] []
[2015-01-19 14:08:28] DEBUG: CREATE TABLE `customers__20150119_14_08_20` LIKE `customers` [] []
[2015-01-19 14:08:37] DEBUG: INSERT INTO `customers__20150119_14_08_20` SELECT * FROM `customers` [] …
Run Code Online (Sandbox Code Playgroud)