简要背景 - 我正在编写一个特殊的导入管理器,可以通过cron运行。基本操作是:
并不困难,但是由于在这个序列开头的apocolyptic删除id喜欢使用一个事务,所以如果在这个过程中出现任何问题我可以回滚。但是,此过程更新的一些表是MyIsam,它不支持事务。
所以主要问题是:是否有一种更简单的方法来检测给定表的存储引擎而不是执行show create table
然后执行少量解析来获取存储引擎 - 即。我希望避免这种额外的查询。
其次:我还没有真正试过这个,因为我还在写其他适合的部分 - 所以如果不支持,Zend_Db可能会忽略beginTransaction
,commit
和rollback
有问题的表?
此外我还没有使用Zend_Db_Table - 只是适配器(Pdo_Mysql)。或者我非常愿意使用原始PDO,如果它能以某种方式允许更优雅的解决方案。
(我对这个特定的实现没有兴趣使用mysqlimport有很多原因我不打算进入,所以我只想说它不是一个选项)
答案 0 :(得分:1)
我建议通过重命名原始表并在成功完成后删除它来解决您的问题;)
答案 1 :(得分:1)
不知道这对你是否仍然有用,但是这个回应呢: