php - Magento 产品插入错误

标签 php mysql magento

我安装了 magento 1.9.1 并从 magento 1.5 数据库中获取了表。
我做了所有必要的更改,我正常发出请求,正常注册客户,正常更改产品。
但是,当尝试添加新产品时,我收到错误:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '25811-1' for key 'IDX_STOCK_PRODUCT'

查询是:

INSERT INTO `cataloginventory_stock_item` (`product_id`, `stock_id`, `qty`, `use_config_min_qty`, `is_qty_decimal`, `backorders`, `use_config_backorders`, `use_config_min_sale_qty`, `use_config_max_sale_qty`, `is_in_stock`, `low_stock_date`, `use_config_notify_stock_qty`, `use_config_manage_stock`, `stock_status_changed_automatically`, `use_config_qty_increments`, `use_config_enable_qty_increments`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

我在产品表中看到的独特更改是 magento 1.5 中的 stock_status_changed_automaticall 列称为 stock_status_changed_auto,因此我在新商店中更改了它。
即使进行此更改,错误仍然存​​在。

最佳答案

这是一个 mysql 错误,而不是 magento 错误。

唯一索引已具有值,这意味着表中已存在唯一 ID 为“25811-1”的行。您可以删除该行,或为要添加到表中的任何新行分配新 ID。换句话说,您无法重新添加 ID“25811-1”,您需要在“25811-2”或任何尚未使用的位置插入。

最有可能发生的情况是向表中添加了新的约束以获得更好的索引。在不修改数据的情况下修复此问题的唯一方法是将 mysql 起始索引 ID 设置为表中最后一条记录之后的内容。不要使用它,因为我不知道你的索引是如何构建的,但大致如下:

ALTER TABLE something AUTO_INCREMENT=123456; //You might need to build this via your composite indexes

关于php - Magento 产品插入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30926275/

相关文章:

mysql - 更新来自 SELECT 的数据

php - Magento 自定义管理模块是空白的

attributes - Magento:从没有产品的属性集中获取属性

php - 在 php 中循环遍历多维数组并执行 mysql 插入(股票数据)

PHP SoapServer : How to disable 'Response' appending

PHP Levenshtein 查询结果

php - 在页面墙上获取其他人的帖子(Facebook API)

java - 当我从数据库表中获取特定列时,在代码中出现 java.sql.SQLException

php - Magento如何存储用户数据

php - 在准备好的 Jquery 文档上运行 php 脚本