尝试删除产品时magento出错

Lor*_*ena 6 product magento outofrangeexception mysql-error-1064 sql-delete

当我尝试删除Magento中的产品时,我得到了下一个错误,我不知道问题出在哪里.

SQLSTATE [22003]:数值超出范围:1690 BIGINT UNSIGNED值超出范围

小智 8

我设法让它在第221行编辑文件app/code/core/Mage/Sales/Model/Resource/Quote.php工作:

'items_count' => new Zend_Db_Expr("CASE WHEN q.items_count>0 THEN " . $adapter->quoteIdentifier('q.items_count') . ' - 1 ELSE 0 END')
Run Code Online (Sandbox Code Playgroud)

基本上我添加了case语句,以防止它在值已经为0时减去1


小智 6

请试试这个:

DELETE FROM sales_flat_quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 30 DAY);
Run Code Online (Sandbox Code Playgroud)

这个对我有用.

  • 我发现这是Magento中的一个错误...基本上当我们删除产品时更新引号的观察者并没有注意DB中的列items_qty是UNSIGNED ...有时这个观察者试图插入-1并且这里来了问题 (2认同)
  • 在您的解决方案旁边可能有效,1'有问题的报价可能> 30天,2'删除报价不好,3'它不是真正的修复,因为它没有修复问题的根源 (2认同)