Magento完整性约束冲突:保存库存项目时出现1062重复输入错误?

Magento完整性约束冲突:保存库存项目时出现1062重复输入错误?,magento,Magento,我写了一些代码,将股票数据添加到产品中。它在我的测试数据库上运行良好。现在我开始在客户数据库上测试代码,出现了以下错误: SQLSTATE[23000]:完整性约束冲突:1062重复项 “449-1”表示钥匙 “UNQ\u MAGENTO\u Catalog库存库存项目产品ID库存ID”查询 was:插入magento\u目录库存\u库存\u项目产品\u id, 库存标识,数量,最小销售数量,使用配置最小销售数量, 最大销售数量,使用配置最大销售数量,是否有库存, 低库存日期,管理库存,使用配置

我写了一些代码,将股票数据添加到产品中。它在我的测试数据库上运行良好。现在我开始在客户数据库上测试代码,出现了以下错误:

SQLSTATE[23000]:完整性约束冲突:1062重复项 “449-1”表示钥匙 “UNQ\u MAGENTO\u Catalog库存库存项目产品ID库存ID”查询 was:插入magento\u目录库存\u库存\u项目产品\u id, 库存标识,数量,最小销售数量,使用配置最小销售数量, 最大销售数量,使用配置最大销售数量,是否有库存, 低库存日期,管理库存,使用配置管理库存, 库存状态已更改自动值?, ?

代码如下:

$product->setStockData(array(
                                       'use_config_manage_stock' => 0, //'Use config settings' checkbox
                                       'manage_stock' => 1, //manage stock
                                       'min_sale_qty' => 1, //Minimum Qty Allowed in Shopping Cart
                                       'max_sale_qty' => 999, //Maximum Qty Allowed in Shopping Cart
                                       'is_in_stock' => 1, //Stock Availability
                                       'qty' => 999 //qty
                                   )
                               );
当我像这样保存产品时,会出现错误:

$product->save();
如果没有库存代码,则可以保存产品。我检查了我拥有的数据库导入文件,其中有伪造密钥检查,所以这不是问题所在。我正在运行Magento 1.9

有什么想法吗

谢谢

cataloginventory\u stock\u item表有一个由product\u id和stock\u id组成的多列唯一键。显然,它的名称为:UNQ\u cataloginventory\u stock\u item\u product\u id\u stock\u id,您通过插入一个重复记录来违反它:product\u id=449,stock\u id=1

确保您在新记录中没有违反此规则

无论如何,您也可以尝试替换:$product->save;使用:$product->getResource->save$product;根据建议

使用此查询:

delete FROM cataloginventory_stock_item 
where product_id not in(SELECT entity_id FROM catalog_product_entity);
这将删除已删除产品的库存。

我使用此查询:

delete FROM cataloginventory_stock_item 
where product_id not in(SELECT entity_id FROM catalog_product_entity);

这对我很有效

如果表“cataloginventory\u stock\u item”具有“UNQ\u cataloginventory\u stock\u item\u PRODUCT\u ID\u stock\u ID”索引时显示错误

然后,请确保每次都从脚本中传递不同的产品SKU。因为如果传递相同的SKU,则它将根据该SKU获取产品id,并获取该特定产品id的重复条目