Topmagento.com|Magento技术交流站

通过数据库快速删除产品和产品目录

栏目:magento疑难解答      2,442 views      尚无回复

大概很多朋友都已经学会了批量上传产品的方法了,高兴之余又面临着一个很严重的问题:怎样批量删除产品?用过magento的朋友都知道,在magento后台批量删除产品的速度是非常慢的,一分钟还删不掉30个产品,勾选较多产品进行批量删除动作时往往会出现 Time Get Out 504 错误 。这是因为每个产品都有很多的属性,都关联着数据库里将近30多个表,每删除一个产品时数据库都要执行30多个表的查询,所以批量删除的产品越多所花费的时间将越长,将很容易导致服务器时间超时的状况。
下面介绍一种简便方法可以在3秒之内删除将近上千数量的产品(做之前最好先备份数据库,本人在magento1.324版本测试通过): 先打开你的magento数据库,选择sql ,复制下列代码在数据库 magento 运行 SQL 查询:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
TRUNCATE TABLE `catalog_product_bundle_option`;   
TRUNCATE TABLE `catalog_product_bundle_option_value`;   
TRUNCATE TABLE `catalog_product_bundle_selection`;   
TRUNCATE TABLE `catalog_product_entity_datetime`;   
TRUNCATE TABLE `catalog_product_entity_decimal`;   
TRUNCATE TABLE `catalog_product_entity_gallery`;   
TRUNCATE TABLE `catalog_product_entity_int`;   
TRUNCATE TABLE `catalog_product_entity_media_gallery`;   
TRUNCATE TABLE `catalog_product_entity_media_gallery_value`;   
TRUNCATE TABLE `catalog_product_entity_text`;   
TRUNCATE TABLE `catalog_product_entity_tier_price`;   
TRUNCATE TABLE `catalog_product_entity_varchar`;   
TRUNCATE TABLE `catalog_product_link`;   
TRUNCATE TABLE `catalog_product_link_attribute`;   
TRUNCATE TABLE `catalog_product_link_attribute_decimal`;   
TRUNCATE TABLE `catalog_product_link_attribute_int`;   
TRUNCATE TABLE `catalog_product_link_attribute_varchar`;   
TRUNCATE TABLE `catalog_product_link_type`;   
TRUNCATE TABLE `catalog_product_option`;   
TRUNCATE TABLE `catalog_product_option_price`;   
TRUNCATE TABLE `catalog_product_option_title`;   
TRUNCATE TABLE `catalog_product_option_type_price`;   
TRUNCATE TABLE `catalog_product_option_type_title`;   
TRUNCATE TABLE `catalog_product_option_type_value`;   
TRUNCATE TABLE `catalog_product_super_attribute`;   
TRUNCATE TABLE `catalog_product_super_attribute_label`;   
TRUNCATE TABLE `catalog_product_super_attribute_pricing`;   
TRUNCATE TABLE `catalog_product_super_link`;   
TRUNCATE TABLE `catalog_product_enabled_index`;   
TRUNCATE TABLE `catalog_product_website`;   
TRUNCATE TABLE `catalog_product_entity`;   
TRUNCATE TABLE `cataloginventory_stock`;   
TRUNCATE TABLE `cataloginventory_stock_item`;   
TRUNCATE TABLE `cataloginventory_stock_status`;   
insert  into `catalog_product_link_type`(`link_type_id`,`code`) values (1,'relation'),(2,'bundle'),(3,'super'),(4,'up_sell'),(5,'cross_sell');   
insert  into `catalog_product_link_attribute`(`product_link_attribute_id`,`link_type_id`,`product_link_attribute_code`,`data_type`) values (1,2,'qty','decimal'),(2,1,'position','int'),(3,4,'position','int'),(4,5,'position','int'),(6,1,'qty','decimal'),(7,3,'position','int'),(8,3,'qty','decimal');   
insert  into `cataloginventory_stock`(`stock_id`,`stock_name`) values (1,'Default');

很快,只需几秒就删除了所有产品及产品的相关记录,这样节省了大量的宝贵时间。
另外介绍一种通过数据库删除产品类别的方法:
同样复制下列代码在数据库 magento 运行 SQL 查询

1
2
3
4
5
6
7
8
9
10
11
TRUNCATE TABLE `catalog_category_entity`;
TRUNCATE TABLE `catalog_category_entity_datetime`;
TRUNCATE TABLE `catalog_category_entity_decimal`;
TRUNCATE TABLE `catalog_category_entity_int`;
TRUNCATE TABLE `catalog_category_entity_text`;
TRUNCATE TABLE `catalog_category_entity_varchar`;
TRUNCATE TABLE `catalog_category_product`;<h2></h2><h1></h1>
TRUNCATE TABLE `catalog_category_product_index`;
INSERT  INTO `catalog_category_entit`(`entity_id`,`entity_type_id`,`attribute_set_id`,`parent_id`,`created_at`,`updated_at`,`path`,`POSITION`,`level`,`children_count`) VALUES (1,3,0,0,'0000-00-00 00:00:00','2009-02-20 00:25:34','1',1,0,1),(2,3,3,0,'2009-02-20 00:25:34','2009-02-20 00:25:34','1/2',1,1,0);
INSERT  INTO `catalog_category_entity_int`(`value_id`,`entity_type_id`,`attribute_id`,`store_id`,`entity_id`,`value`) VALUES (1,3,32,0,2,1),(2,3,32,1,2,1);
INSERT  INTO `catalog_category_entity_varchar`(`value_id`,`entity_type_id`,`attribute_id`,`store_id`,`entity_id`,`value`) VALUES (1,3,31,0,1,'Root Catalog'),(2,3,33,0,1,'root-catalog'),(3,3,31,0,2,'Default Category'),(4,3,39,0,2,'PRODUCTS'),(5,3,33,0,2,'default-category');

这样就很快的删除了目录及其相关信息。


标签: ,

转载注明:转自Topmagento.com|Magento技术交流站

本站遵循:署名-非商业性使用-禁止演绎 3.0 共享协议

收藏分享: QQ书签 / 百度收藏 / Google书签 / 收藏到鲜果 / Digg / Del.icio.us



发表回复


XHTML: 您可以使用如下代码:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>