您的位置:首页 > 数据库

magento后台如何批量删除产品

2011-06-27 08:54 387 查看
magento后台如何批量删除产品
2011-04-24 01:08

magento怎样批量删除产品?用过magento的朋友都知道,在magento后台批量删除产品的速度是非常慢的,一分钟还删不掉30个产品,勾选
较多产品进行批量删除动作时往往会出现 Time Get Out 504 错误
。这是因为每个产品都有很多的属性,都关联着数据库里将近30多个表,每删除一个产品时数据库都要执行30多个表的查询,所以批量删除的产品越多所花费的
时间将越长,将很容易导致服务器时间超时的状况。

下面介绍一种简便方法可以在3秒之内删除将近上千数量的产品(做之前最好先备份数据库,本人在magento1.4版本测试通过): 先打开你的magento数据库,选择sql ,复制下列代码在数据库 magento 运行 SQL 查询:

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 查询

 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');

这样就很快的删除了目录及其相关信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息