升级到 Magento 2.2.2 后:键 'PRIMARY' 的重复条目“0-0-0-0”,查询为:INSERT INTO `salesrule_product_attribute` () VALUES ()
After Upgrade to Magento 2.2.2: Duplicate entry '0-0-0-0' for key 'PRIMARY', query was: INSERT INTO `salesrule_product_attribute` () VALUES ()
如果我将 Magento 从 2.1.8 升级到 2.2.2 并且 运行 setup:upgrade
我会收到以下错误:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0-0-0-0' for key 'PRIMARY', query was: INSERT INTO `salesrule_product_attribute` () VALUES ()
如果我对运行所有销售规则表进行分类,它就可以工作,但我不能在生产环境中这样做。这个问题有解决办法吗?
问题出在文件 vendor/magento/module-sales-rule/Model/ResourceModel/Rule.php
。
如果 $data
为空,方法 setActualProductAttributes
插入空 VALUES()
。
这可以通过覆盖模型和替换来解决
$connection->insertMultiple($this->getTable('salesrule_product_attribute'), $data);
与:
if(count($data > 0 )) {
$connection->insertMultiple($this->getTable('salesrule_product_attribute'), $data);
}
如果我将 Magento 从 2.1.8 升级到 2.2.2 并且 运行 setup:upgrade
我会收到以下错误:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0-0-0-0' for key 'PRIMARY', query was: INSERT INTO `salesrule_product_attribute` () VALUES ()
如果我对运行所有销售规则表进行分类,它就可以工作,但我不能在生产环境中这样做。这个问题有解决办法吗?
问题出在文件 vendor/magento/module-sales-rule/Model/ResourceModel/Rule.php
。
如果 $data
为空,方法 setActualProductAttributes
插入空 VALUES()
。
这可以通过覆盖模型和替换来解决
$connection->insertMultiple($this->getTable('salesrule_product_attribute'), $data);
与:
if(count($data > 0 )) {
$connection->insertMultiple($this->getTable('salesrule_product_attribute'), $data);
}