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