Tablo Depolama Motoru için Zend_Db / PDO Testi

2 Cevap php

Kısa arka plan - Im cron üzerinden çalıştırmak için özel bir ithalat yazma yöneticisi. Temel bir işlemdir:

  1. Tablosundan tüm kayıtları silmek
  2. Tabloya bir dosya ya da bir dize yük verileri

Zor, ancak çünkü apocolyptic bu dizi id başında silemezsiniz şey işlemi sırasında yanlış giderse ben geri alma böylece bir işlem kullanmak ister. Ancak, bu süreç ile güncellenen bazı tabloların işlemleri desteklemiyor myisam vardır.

Yani asıl soru şu: Is there an easier way to detect the storage engine for a given table than doing a show create table ve sonra depolama motorunu almak için gerekenlere az ayrıştırma yapıyor - yani. id bu ekstra sorguyu önlemek istiyorum.

İkincisi: Ben aslında im hala sığacak Soem diğer parçaları yazarken henüz bu çalıştı sığınak - belki Zend_Db basitçe görmezden beginTransaction, commit, ve rollback değilse Söz konusu tablo desteklenir?

Ayrıca Im Bunun için Zend_Db_Table kullanarak değil - sadece Adaptörü (Pdo_Mysql). Alternatif olarak her nasılsa daha zarif bir çözüm sağlar eğer ham PDO kullanmak için mükemmel istekli im.

(Nedenlerle bir dizi için bu özel uygulama için mysqlimport kullanarak ilgilenmiyor Im içine almak için gitmiyor im yüzden sadece tüm onun değil bir seçenek Diyelim)

2 Cevap

Ben özgün tabloyu yeniden adlandırma ve başarılı tamamlanmasından sonra silme ile problem çözme öneririm ;)

Bu sizin için hala uygun olup olmadığını biliyorum, ama ne bu yanıtı hakkında etmeyin:

How can I check MySQL engine type for a specific table?