Atribut Produk tidak dapat diindeks ulang

8

Saya menerima kesalahan ini saat mencoba mengindeks ulang "Atribut Produk". Adakah yang bisa menyarankan, apa yang mungkin menjadi masalah dan solusi yang mungkin

Kesalahan fatal: Pengecualian tanpa tertangkap 'PDOException' dengan pesan 'SQLSTATE [23000]: Pelanggaran batasan integritas: 1062 Entri duplikat' 2828-148-1-471 'untuk kunci' PRIMER 'di E: \ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Statement \ Pdo.php: 228 Stack trace: # 0 E: \ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Statement \ Pdo.php (228): PDOStatement-> mengeksekusi (Array) # 1 E : \ xampp \ htdocs \ magento \ lib \ Varien \ Db \ Statement \ Pdo \ Mysql.php (110): Zend_Db_Statement_Pdo -> _ execute (Array) # 2 E: \ xampp \ htdocs \ magento \ app \ code \ Zend \ Db \ Statement.php (291): Varien_Db_Statement_Pdo_Mysql -> _ execute (Array) # 3 E: \ xampp \ htdocs \ magento \ lib \ Db \ Adapter \ Abstract.php (480): Zend_Db_Statement-> execute (Array) # 4 E: \ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Adapter \ Pdo \ Abstract.php (238): Zend_Db_Adapter_Abstract-> query ('INSERT INTOca...', Array) #5 E:\xampp\htdocs\magento\lib\Varien\Db\Adapter\Pdo\Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTOca ... ', Array) # 6 E: \ xampp \ htdocs \ magento \ lib \ Varien \ Db \ Adapter \ Pdo \ Mysql.php (1998): Varien_Db_Adapter_Pdo_Mysql di E: \ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Pernyataan \ Pdo.php pada baris 234

Prashanta
sumber
Apakah Anda mengimpor database melalui phpmyadmin?
Flyingmana
Tidak, saya hanya menambahkan produk secara programatis @Flyinglama
Prashanta

Jawaban:

15

Bagaimana menafsirkan pesan kesalahan

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '2828-148-1-471' 
for key 'PRIMARY

Dalam kasus pengindeks atribut produk, ini berarti ada kesalahan kendala saat menyimpan catatan ke catalog_product_index_eav_idxtabel.

2828-148-1-471 mengacu pada:

  • id entitas produk: 2828
  • atribut id: 148
  • id toko: 1
  • nilai: 471

Kemungkinan asal masalah

Saya berasumsi bahwa atribut yang menyebabkan masalah adalah tipe multiselect. Nilai yang ditautkan beberapa kali ke suatu produk, akan menyebabkan jenis kesalahan ini.

Anda dapat memeriksanya dengan menjalankan kueri berikut:

SELECT * FROM `catalog_product_entity_varchar` 
where entity_id = 2828 and attribute_id = 148 and store_id = 1;

Saya menduga bahwa id 471 akan dicantumkan beberapa kali di kolom value. Setiap id hanya boleh dicantumkan satu kali di kolom itu.

Apakah Anda menggunakan importir untuk menambahkan data produk ke Magento?

Vicky
sumber
Ya, ini adalah impor programatik produk sederhana inchoo
Prashanta
Solusi apa pun untuk ini, ya itu adalah multi pilih
Prashanta
7

Solusi di bawah ini berfungsi untuk saya dan dapat membantu orang lain:

2828-148-1-471 mengacu pada:

id entitas produk: id 2828 atribut: 148 id toko: 1 nilai: 471

Cukup buka produk dengan id 2828 dan simpan dan masukkan kembali.

yang dapat memecahkan masalah Anda

Harsh Shah
sumber
Solusi apa untuk pembaruan massal?
DarkCowboy
3

Saya mengerti, itu adalah masalah dengan atribut dropdown multi pilih, Dalam skrip saya, terkadang atribut yang sama ditambahkan beberapa kali yang menyebabkan kesalahan, memposting jawaban ini untuk seseorang jika memerlukan bantuan di masa depan

Prashanta
sumber