Краткая справка - я пишу специальный менеджер импорта для запуска через cron. Основная операция:
- Удалить все записи из таблицы
- Загрузка данных из файла или строки в таблицу
Не сложно, однако из-за апоколитического удаления в начале этой последовательности идентификатору нравится использовать транзакцию, чтобы я мог откатиться, если что-то пойдет не так во время процесса. Однако некоторые таблицы, обновленные этим процессом, являются MyIsam, который не поддерживает транзакции.
Итак, главный вопрос: Существует ли более простой способ обнаружить механизм хранения для данной таблицы, чем выполнить show create table
, а затем выполнить небольшой анализ, необходимый для получения механизма хранения - т.е. , Я хотел бы избежать этого дополнительного запроса.
Во-вторых: я на самом деле еще не пробовал это сделать, так как я все еще пишу некоторые другие подходящие фрагменты - так что, возможно, Zend_Db просто игнорирует beginTransaction
, commit
и rollback
, если не поддерживается в рассматриваемой таблице?
Также я не использую Zend_Db_Table для этого - просто адаптер (Pdo_Mysql). Кроме того, я совершенно готов использовать сырой PDO, если это как-то позволяет более элегантное решение.
(я не заинтересован в использовании mysqlimport для этой конкретной реализации по ряду причин, в которые я не собираюсь вдаваться, поэтому давайте просто скажем, что это вообще не вариант)