【发布时间】:2012-12-04 21:55:27
【问题描述】:
我在 Magento 使用信用卡/借记卡下订单时收到以下错误:
Order saving error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '282-189' for key 2
我无法获得确切的跟踪,因为它只是不想向我显示,但是,我已经在501 线上将其追溯到app/code/core/Mage/Checkout/controllers/OnepageController.php(未编辑)。确切的行是:
$this->getOnepage()->saveOrder();
现在,逻辑告诉我,这只是两个订单在尝试添加订单时具有相同的键,还是我完全错了?
无论如何,除此之外,解决此问题的最佳方法是什么?我曾想过导出订单,将它们全部删除,然后重新导入它们,但我觉得它行不通。
我正在使用 Magento 1.6.2.0
编辑:我刚刚意识到,如果我发现哪个表未通过完整性检查,我可能会清空该表(取决于它是哪个表),这会自行修复吗?关于如何找出哪个表搞砸的任何想法?
EDIT2:所以在 Oğuz Çelikdemir 的回答之后,事实证明以下是罪魁祸首:
2012-03-14T13:59:01+00:00 DEBUG (7): SQL: INSERT INTO `sales_order_tax_item` (`tax_id`, `item_id`, `tax_percent`) VALUES (?, ?, ?) (254, 8, 10)
2012-03-14T13:59:01+00:00 DEBUG (7): SQL: INSERT INTO `sales_order_tax_item` (`tax_id`, `item_id`, `tax_percent`) VALUES (?, ?, ?) (254, 8, 10)
显然不能插入两个相同的tax_id。有人知道如何解决吗?
【问题讨论】:
-
最近,你有没有安装任何扩展?
-
是的,但没有什么应该影响税收的!不过我找到了解决办法。
标签: magento constraints integrity