【发布时间】:2011-01-10 03:48:10
【问题描述】:
背景简介 - 我正在编写一个通过 cron 运行的特殊导入管理器。基本操作是:
- 从表中删除所有记录
- 将文件或字符串中的数据加载到表中
不难,但是由于这个序列开头的世界末日删除,我喜欢使用事务,所以如果在这个过程中出现任何问题,我可以回滚。但是,此过程更新的某些表是不支持事务的 MyIsam。
所以主要的问题是:有没有比执行show create table 更简单的方法来检测给定表的存储引擎,然后进行少量解析以获取存储引擎 - IE。我想避免这个额外的查询。
其次:我还没有真正尝试过这个,因为我还在写一些其他适合的部分 - 所以 Zend_Db 可能只是忽略 beginTransaction、commit 和 rollback,如果有问题的表不支持?
我也没有为此使用 Zend_Db_Table - 只是适配器(Pdo_Mysql)。或者,如果可以以某种方式提供更优雅的解决方案,我完全愿意使用原始 PDO。
(我对在这个特定的实现中使用 mysqlimport 不感兴趣,原因有很多我不会进入,所以让我们说它根本不是一个选项)
【问题讨论】:
标签: php mysql zend-framework pdo