MYSQL ВЪВ ФУНКЦИЯ И ТРИГЕР НЕ ПОДДЪРЖА ДИНАМИЧНО ВМЪКВАНЕ НО ПРОЦЕДУРАТА МОЖЕ ДА ПОДДЪРЖА ДИНАМИЧНО ВМЪКВАНЕ.
ТАКА ДА МОЖЕТЕ ДА НАПРАВИТЕ ПРОМЕНИ В ПРОЦЕДУРАТА И НАПРАВЕТЕ ПРОЦЕДУРА В attribute_values ТАБЛИЦА ВМЪКНЕТЕ ЗАЯВКА.
INSERT INTO attribute_values VALUES(product_id,column_name,val);
И СЛЕД ВАС ЩЕ БЪДЕ САМО ПРОЦЕДУРА ЗА ОБАЖДАНЕ
CALL attribute_values_after_insert(2,'code',132);
DELIMITER //
drop procedure if exists attribute_values_after_insert //
CREATE PROCEDURE attribute_values_after_insert(IN product_id INT, IN
column_name VARCHAR(100), IN val VARCHAR(100))
BEGIN
SET @sql = NULL;
INSERT INTO attribute_values VALUES(product_id,column_name,val);
SELECT concat('UPDATE product_attributes SET product_attributes.', column_name, '=', val, ' WHERE id=', product_id) INTO @sql;
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @sql = NULL;
END//
DELIMITER ;
DELIMITER //