While creating product, at the last step after retrieving for a time, Magento gives following error-:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1922-1' for key 'IDX_STOCK_PRODUCT'
What I am doing is, by capturing product id, I am putting it's entry in custom table. I have connected to Magento database externally.
Surprisingly data is inserted in both Magento's base table & also in Custom table but why it is giving me that error after product saving...?
I cleared cache, browser cookies. Also remove /var/cache, /var/session. still giving error. Can anybody suggest a solution?
This question is related to
magento
constraints
mysql-error-1062
duplicates
I just added an @ symbol and it started working. Like this: @$product->save();
Try to change the FK to INDEX instead of UNIQUE.
Many time this error is caused when you update a product in your custom module's observer as shown below.
class [NAMESPACE]_[MODULE NAME]_Model_Observer
{
/**
* Flag to stop observer executing more than once
*
* @var static bool
*/
static protected $_singletonFlag = false;
public function saveProductData(Varien_Event_Observer $observer)
{
if (!self::$_singletonFlag) {
self::$_singletonFlag = true;
$product = $observer->getEvent()->getProduct();
//do stuff to the $product object
// $product->save(); // commenting out this line prevents the error
$product->getResource()->save($product);
}
}
Hence whenever you save your product after updating some properties in your module's observer use $product->getResource()->save($product)
instead of $product->save()
your column value is already in database table it means your table column is Unique you should change your value and try again
I also encountered this problem. I found after changing the table storage engine from MyISAM to Innodb, problem solved .
You might have forgotten to auto increment the id field.
Source: Stackoverflow.com