0

私の magento データベースには約 800,000 の製品があり、それらの製品の約半分 (約 400,000) を削除する必要があります。

マジェント1.7.0.2で実行

「製品の管理」ページからそれを行うのに永遠に時間がかかります. プロセスに時間がかかり、サーバーがタイムアウトし続けます。

選択した製品をデータベースから削除できる SQL ステートメントはありますか? 削除する必要があるすべての製品。タイトルは *NLA で始まります

マグネトが製品データをいくつかの異なるテーブルに保存していることを知っているので、選択した製品に関連付けられているすべてのデータをすべてのテーブルから削除する方法を見つけようとしています。

私は MySQL ステートメントを知っていますが、専門家ではないので、これを理解することはできません。たとえば、テーブルが 1 つしかない場合は、次のようにします。 DELETE FROM product_table WHERE title_value LIKE '*NLA%'

誰かが私を正しい方向に向けることができれば幸いです。

4

3 に答える 3

1

このクエリを使用できます

DELETE FROM product_table WHERE title_value LIKE '*NLA%

Magentoは、外部キーを使用してMySQL用のInnoDBエンジンStorageを使用しました。FKキーを持つすべてのデータも削除されます。

于 2013-03-14T18:30:58.390 に答える
0

単一SQLのテーブルから削除する場合は、ステートメントがその役割を果たします。

別のテーブルに保存する場合は、保存方法によって異なります。たとえば、商品がforeign key異なるテーブルにあるキーに従って保存されている場合、商品がメインテーブルから削除されると、関連するすべてのテーブルが更新されます(外部キーが設定されているかどうかによって異なりますCASCADE ON DELETE)。

ただし、条件で指定されている正規表現には注意してLIKEください。タイトルのどこかに「NLA」が含まれている製品が他にないことを確認してください。

編集:あなたは「NAL」で始まると言いましたか?その場合、正規表現は次のようになります。'NAL*%'

DELETE FROM product_table WHERE title LIKE 'NAL*%'
于 2013-03-14T18:30:12.733 に答える
0

Magentoでは、製品の詳細はEAVの概念を使用してデータベースに保存されるため、製品データが格納される30を超えるテーブルがあります。

一括削除にはMagentoのインポートエクスポート機能を使用することをお勧めします。

このリンクを参照してください: magento:インポート/エクスポート機能を介して製品を一括削除しますか?

同様に使用できる拡張Magmiがあります。

于 2013-03-14T20:37:49.540 に答える