Saya punya tabel khusus. Saya ingin memotong tabel menggunakan koleksi Magento tanpa query SQL.
Semoga seseorang akan memberikan beberapa informasi yang bermanfaat.
magento-1.7
magento-1.8
database
collection
VijayS91
sumber
sumber
Jawaban:
Magento tidak memiliki dukungan untuk ini (sejauh yang saya tahu).
Tetapi Anda bisa menerapkan metode dalam model sumber daya Anda (bukan model sumber daya koleksi) yang akan memotong tabel.
Sesuatu seperti ini:
Kemudian Anda dapat menyebutnya dalam kode Anda:
Tetapi ini adalah pendekatan yang sangat berbahaya. The
truncate
pernyataan istirahat transaksi, sehingga tidak dapat digulung kembali kasus Anda perlu.Saya sarankan menghapus setiap entitas di tabel sebagai gantinya.
Sisi bawahnya adalah ini tidak me-reset id kenaikan tabel. Tapi ini lebih aman.
EDIT .
Untuk memperbarui id kenaikan tabel utama Anda bisa menambahkan metode baru dalam model sumber daya Anda yang melakukan sesuatu seperti ini.
Kemudian panggil metode Anda dalam kode:
sumber
Mage_Catalog_Model_Product
. Ada model sumber daya. Contoh:Mage_Catalog_Model_Resource_Product
. Dan ada model koleksi sumber dayaMage_Catalog_Model_Resource_Product_Collection
.Catatan: MySQL me-reset nilai autoincrement ke
1
ketika memotong tabel, jadi itu tidak diperlukan, tetapichangeTableAutoIncrement
mungkin berguna jika seseorang ingin memiliki AI dimulai dengan nilai lain.Edit:
Pertanyaan ini ditandai dengan magento-1.7 / magento-1.8 ... hanya untuk melengkapi jawabannya:
changeTableAutoIncrement
telah ditambahkan di 1.8.0.1truncateTable
ditambahkan dalam 1.6.0.0-alpha1sumber
Saya telah membuat Model dan untuk beberapa pengembangan saya harus mengimplementasikan metode delete. Ini sangat mudah. Saya juga mencoba untuk menghapus bersyarat tetapi saya tidak mendapatkan kode yang tepat. Tetapi saya menggunakan kode berikut yang akan memenuhi persyaratan Anda untuk penghapusan bersyarat.
sumber