2010-01-27 49 views
1

簡要背景 - 我寫一個特殊的導入管理器,通過cron運行。基本操作是:Zend_Db/PDO測試表存儲引擎

  1. 從一個文件或者一個字符串到表

不困難刪除所有記錄表

  • 加載數據,但是因爲apocolyptic的刪除之初這個序列id喜歡使用一個事務,所以如果在這個過程中出現任何錯誤,我可以回滾。但是,這個過程更新的一些表是不支持事務的MyIsam。

    所以今天的主要問題是:是否有檢測存儲引擎比做一個show create table,然後做一點分析需要得到存儲引擎一個給定的表更簡單的方法 - 即。編號喜歡避免這個額外的查詢。

    其次:我還沒有真正嘗試過這種又作爲即時通訊仍然在寫,適合在SOEM其他部分 - 所以也許Zend_Db的只是忽略beginTransactioncommitrollback如果不支持對有問題的表?

    另外我不使用Zend_Db_Table這個 - 只是適配器(Pdo_Mysql)。或者,我完全願意使用原始PDO,如果這種方式允許更優雅的解決方案。

    (IM使用的mysqlimport爲許多原因這個特定的實現不感興趣,我不是打算進入所以讓我們只說其不是一種選擇,在所有)

  • 回答

    1

    我建議解決與重命名您的問題原始表併成功完成後,將其刪除;)

    +0

    但是,這並不讓我在斯道ge引擎......並且沒有我不能使用兩個引擎的每一個的條件邏輯。因此,如果您的解決方案碰巧是InnoDb,並且我將其重命名 - 如果它有其他表引用它,它們的引用將更改爲新的表名稱而不是它們? – prodigitalson 2010-01-28 15:21:01

    +0

    Sry,你是對的...... – 2010-02-03 20:57:07