magento 2 Kesalahan sintaks atau pelanggaran akses: 1103 Nama tabel salah '', permintaannya adalah: INSERT INTO `` () VALUES ()


9

Magento 2 saat melakukan pemesanan dari toko yang baru dibuat, setelah mengklik tombol pesanan tempat di bawah kesalahan dibatalkan,

Kesalahan sintaksis atau pelanggaran akses: 1103 Nama tabel salah '', kueri adalah: INSERT INTO `` () VALUES ()

Dan hentikan fungsi pesanan tempat.


Tolong beri tahu saya bahwa Anda telah bermigrasi dari Magento1.9 ke Magento 2. Jika ya, maka saya punya solusi untuk Anda.
Manish

@ Bahasa Spanyol Saya sudah jadi apa solusinya?
Webninja

@ Webninja, ikuti jawaban Vu Anh (di bawah), buat ada entri untuk setiap toko. Di sini 1 | memesan | 0 | sequence_order_0 0 adalah id toko. Sementara migrasi terjadi beberapa data tidak dimasukkan dengan benar.
Manish

Jawaban:


7

jika Anda telah membuat toko Anda secara terprogram Anda harus mengirimkan suatu acara add_storedengan store modelparameter in Anda .

$this->eventManager->dispatch('store_add', ['store' => $storeModel]);

Jika Anda melihat \Magento\SalesSequence\Observer\SequenceCreatorObserver, pengamat ini dipanggil untuk add_storeacara tersebut

Ini akan memasukkan beberapa data yang terkait dengan toko Anda di sales_sequence_metatabel


7

masalah ini Anda dapatkan ketika Anda mencoba menyisipkan baris baru ke tabel relasi pengiriman ke urutan pembuatan otomatis. untuk mengatasi masalah ini, silakan lihat pada tabel "sales_afterence_meta" dengan "entitas_type" = "order", periksa dan pastikan entitas_type = "order" ini ada di semua toko Anda. Masukkan yang baru jika Anda memeriksanya tidak mengetahui id toko apa pun.

meta_id | entity_type | store_id | sequence_table

1 | memesan | 0 | sequence_order_0


2

Dalam berbagai keadaan, Magento tidak membuat tabel urutan penjualan untuk sebuah toko. Ini adalah tabel di mana ID kenaikan pesanan, ID kenaikan pengiriman, dll dibuat. Jadi, checkout gagal ketika mencoba untuk menetapkan ID kenaikan untuk pesanan baru. Tabel contoh:

sequence_creditmemo_1
sequence_invoice_1
sequence_order_1
sequence_rma_1
sequence_shipment_1

Berikut adalah modul untuk perintah Magento CLI yang akan membuat tabel urutan penjualan yang hilang untuk toko tertentu: https://github.com/joeshelton-wagento/fixsalessequence


2

Kesalahan di atas terjadi ketika ada tabel yang hilang untuk multi-toko. Alasan utama di balik masalah ini adalah ketika migrasi dilakukan menggunakan ekstensi pihak ketiga apa pun yang tidak dilakukan oleh alat migrasi data.

CATATAN : Silakan ambil cadangan database sebelum menerapkan perubahan apa pun!

Anda akan melihat bahwa, tabel berikut mungkin Hilang:

Asumsi : toko 1, toko 2 berfungsi dengan baik, jika toko 3 tidak berfungsi dengan baik.

Jika toko 3 tidak berfungsi dengan baik maka tabel ini perlu dibuat:

sequence_creditmemo_3 sequence_invoice_3 sequence_order_3 sequence_shipment_3

CATATAN: Anda bisa mendapatkan struktur tabel ini dari tabel lain yang ada seperti sequence_creditmemo_1, sequence_invoice_1, sequence_order_1, sequence_shipment_1


CATATAN : Perlu mengubah id toko di nama tabel.

CREATE TABLE `sequence_creditmemo_3` (
  `sequence_value` int(10) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `sequence_invoice_3` (
  `sequence_value` int(10) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `sequence_order_3` (
  `sequence_value` int(10) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `sequence_shipment_3` (
  `sequence_value` int(10) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `sequence_creditmemo_3`
  ADD PRIMARY KEY (`sequence_value`);

ALTER TABLE `sequence_invoice_3`
  ADD PRIMARY KEY (`sequence_value`);

ALTER TABLE `sequence_order_3`
  ADD PRIMARY KEY (`sequence_value`);

ALTER TABLE `sequence_shipment_3`
  ADD PRIMARY KEY (`sequence_value`);

ALTER TABLE `sequence_creditmemo_3`
  MODIFY `sequence_value` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

ALTER TABLE `sequence_invoice_3`
  MODIFY `sequence_value` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

ALTER TABLE `sequence_order_3`
  MODIFY `sequence_value` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

ALTER TABLE `sequence_shipment_3`
  MODIFY `sequence_value` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

Tabel berikut perlu diperbarui dengan entri tabel profil urutan yang sesuai:

sales_afterence_meta sales_afterence_profile

Catatan : Perlu mengubah id toko di kueri di bawah ini.

INSERT INTO `sales_sequence_meta` (`meta_id`, `entity_type`, `store_id`, `sequence_table`) VALUES
(NULL, 'order', 3, 'sequence_order_3'),
(NULL, 'invoice', 3, 'sequence_invoice_3'),
(NULL, 'creditmemo', 3, 'sequence_creditmemo_3'),
(NULL, 'shipment', 3, 'sequence_shipment_3');

Catatan : Ubah awalan sebagai id penyimpanan untuk kueri di bawah ini.

INSERT INTO `sales_sequence_profile` (`profile_id`, `meta_id`, `prefix`, `suffix`, `start_value`, `step`, `max_value`, `warning_value`, `is_active`) VALUES
(NULL, 17, 3, NULL, 1, 1, 4294967295, 4294966295, 1),
(NULL, 18, 3, NULL, 1, 1, 4294967295, 4294966295, 1),
(NULL, 19, 3, NULL, 1, 1, 4294967295, 4294966295, 1),
(NULL, 20, 3, NULL, 1, 1, 4294967295, 4294966295, 1);

Silakan terapkan solusi di atas, saya harap ini akan membantu Anda untuk memecahkan masalah Anda.

CATATAN : Silakan ambil cadangan database sebelum melakukan perubahan!


0

Saya pikir Magento 2 tidak diinstal dengan benar. Jadi, jika mungkin, coba instal ulang versi terbaru yang diperbarui dan setelah itu pertama-tama hapus cache & lakukan pengindeksan. Ini berfungsi dengan baik dari pengaturan saya.


0

Saya men-debug masalahnya. Untuk kasus saya, itu karena proses yang tidak lengkap selama pembuatan toko karena data yang berat. Saya menemukan entri tidak ada di tabel 'sales_afterence_meta' untuk toko itu. Saya mencoba dengan menambahkannya secara manual dan berhasil melakukan pemesanan. Periksa entri untuk toko yang relevan

Periksa entri untuk toko yang relevan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.