I am trying to create a new product attribute in Magento ver. 2.3.5-p1.
When I click on Save Attribute I get an error message saying:
"Unique constraint violation found"
The only relevant record I can find in exception log says:
exception.log:[2021-04-12 10:00:36] main.CRITICAL: Report ID: webapi-60741a44ca43f; Message: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`magento`.`eav_attribute_option_value`, CONSTRAINT `EAV_ATTR_OPT_VAL_OPT_ID_EAV_ATTR_OPT_OPT_ID` FOREIGN KEY (`option_id`) REFERENCES `eav_attribute_option` (`option_id`) ON DELETE CASCADE), query was: INSERT INTO `eav_attribute_option_value` (`option_id`, `store_id`, `value`) VALUES (?, ?, ?) {"exception":"[object] (Exception(code: 23000): Report ID: webapi-60741a44ca43f; Message: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`magento`.`eav_attribute_option_value`, CONSTRAINT `EAV_ATTR_OPT_VAL_OPT_ID_EAV_ATTR_OPT_OPT_ID` FOREIGN KEY (`option_id`) REFERENCES `eav_attribute_option` (`option_id`) ON DELETE CASCADE), query was: INSERT INTO `eav_attribute_option_value` (`option_id`, `store_id`, `value`) VALUES (?, ?, ?) at /home/pen-paper/public_html/vendor/magento/framework/Webapi/ErrorProcessor.php:208, Zend_Db_Statement_Exception(code: 23000): SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`magento`.`eav_attribute_option_value`, CONSTRAINT `EAV_ATTR_OPT_VAL_OPT_ID_EAV_ATTR_OPT_OPT_ID` FOREIGN KEY (`option_id`) REFERENCES `eav_attribute_option` (`option_id`) ON DELETE CASCADE), query was: INSERT INTO `eav_attribute_option_value` (`option_id`, `store_id`, `value`) VALUES (?, ?, ?) at /home/pen-paper/public_html/vendor/magento/framework/DB/Statement/Pdo/Mysql.php:110, PDOException(code: 23000): SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`magento`.`eav_attribute_option_value`, CONSTRAINT `EAV_ATTR_OPT_VAL_OPT_ID_EAV_ATTR_OPT_OPT_ID` FOREIGN KEY (`option_id`) REFERENCES `eav_attribute_option` (`option_id`) ON DELETE CASCADE) at /home/pen-paper/public_html/vendor/magento/framework/DB/Statement/Pdo/Mysql.php:91)"} []
I am not even certain that the error above is corellated to my issue
I also tried to manually insert a new attribute with the following SQL statement
INSERT INTO `eav_attribute` (`entity_type_id`, `attribute_code`, `backend_model`, `backend_type`, `backend_table`, `frontend_model`, `frontend_input`, `frontend_label`, `frontend_class`, `source_model`, `is_required`, `is_user_defined`, `default_value`, `is_unique`, `note` ) VALUES ( 1, "skrouz", NULL, "varchar", NULL, NULL, "text", "skrouz", NULL, NULL, 0, 0, NULL, 0, NULL )
The error I got in the console was:
ERROR 1062 (23000): Duplicate entry '65535' for key 'PRIMARY'
Now looking at the description of the eav_attribute table I can see that the primary key, attribute_id, is of type smallint(5) unsigned (autoincrement).
Could it be, that due to the count of attribute values, I am exceeding the limits of small int? Can I alter the table safely to make the field an int?
Hi @romfeo,
You are using the wrong data type please convert it to "int"
Hope this can help you! Let me know if you need further assistance.
________
If issue solved, Click Kudos & Accept as Solution.
The reason for this error can be the creation of duplicate values in the database table.