magento 2 Lỗi cú pháp hoặc vi phạm truy cập: 1103 Tên bảng không chính xác '', truy vấn là: INSERT INTO `` () VALUES ()


9

Magento 2 khi đặt hàng địa điểm từ cửa hàng mới được tạo, sau khi nhấp vào nút đặt hàng địa điểm bên dưới lỗi là không rõ ràng,

Lỗi cú pháp hoặc vi phạm truy cập: 1103 Tên bảng không chính xác '', truy vấn là: INSERT INTO `` () VALUES ()

Và dừng chức năng đặt hàng.


Bạn vui lòng cho tôi biết rằng bạn đã di chuyển từ Magento1.9 sang Magento 2. Nếu có thì tôi có một giải pháp cho bạn.
Manish

@ Tôi biến mất vậy giải pháp là gì?
Webninja

@Webninja, hãy làm theo câu trả lời của Vũ Anh (bên dưới), làm cho có mục cho mỗi cửa hàng. Đây 1 | đặt hàng | 0 | Sequ_order_0 0 là id cửa hàng. Trong khi di chuyển xảy ra một số dữ liệu không được chèn đúng cách.
Manish

Câu trả lời:


7

nếu bạn đã tạo cửa hàng của mình theo lập trình, bạn phải gửi một sự kiện add_storevới store modeltham số của bạn .

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

Nếu bạn nhìn \Magento\SalesSequence\Observer\SequenceCreatorObserver, người quan sát này được gọi cho add_storesự kiện

Nó sẽ chèn một số dữ liệu liên quan đến cửa hàng của bạn trong sales_sequence_metabảng


7

vấn đề này bạn gặp phải khi bạn thử chèn hàng mới vào tàu quan hệ bảng để tự động tạo chuỗi. để giải quyết vấn đề này, vui lòng xem trong bảng "sales_ resultence_meta" với "entity_type" = "order", kiểm tra và đảm bảo thực thể này tồn tại trên tất cả các cửa hàng của bạn. Chèn cái mới nếu bạn kiểm tra nó bị bỏ lỡ cho bất kỳ id cửa hàng nào.

meta_id | entity_type | store_id | sequence_table

1 | đặt hàng | 0 | trình tự_order_0


2

Trong các trường hợp khác nhau, Magento không tạo các bảng trình tự bán hàng cho một cửa hàng. Đây là các bảng nơi tạo ID gia tăng đơn hàng, ID gia tăng lô hàng, v.v. Vì vậy, thanh toán không thành công khi cố gắng gán ID tăng cho đơn hàng mới. Bảng ví dụ:

sequence_creditmemo_1
sequence_invoice_1
sequence_order_1
sequence_rma_1
sequence_shipment_1

Dưới đây là mô-đun cho lệnh Magento CLI sẽ tạo các bảng chuỗi bán hàng bị thiếu cho một cửa hàng nhất định: https://github.com/joeshelton-wagento/fixsales resultence


2

Lỗi trên xảy ra khi thiếu bảng cho nhiều cửa hàng. Lý do chính đằng sau vấn đề này là khi quá trình di chuyển được thực hiện bằng cách sử dụng bất kỳ tiện ích mở rộng bên thứ ba nào không được thực hiện bởi công cụ di chuyển dữ liệu.

LƯU Ý : Vui lòng sao lưu cơ sở dữ liệu trước khi áp dụng bất kỳ thay đổi nào!

Bạn sẽ nhận thấy rằng, các bảng sau có thể bị thiếu:

Giả định : cửa hàng 1, cửa hàng 2 hoạt động tốt, nếu cửa hàng 3 không hoạt động đúng.

Nếu cửa hàng 3 không hoạt động đúng thì các bảng này cần được tạo:

Sequ_creditmemo_3 Sequ_invoice_3 Sequ_order_3 Sequ_shipment_3

LƯU Ý: Bạn có thể nhận cấu trúc của các bảng này từ các bảng hiện có khác như Sequ_creditmemo_1, Sequ_invoice_1, Sequ_order_1, Sequ_shipment_1


LƯU Ý : Cần thay đổi id cửa hàng trong tên bảng.

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;

Các bảng sau cần được cập nhật với các mục trong bảng hồ sơ trình tự tương ứng:

sales_ resultence_meta sales_ resultence_profile

Lưu ý : Cần thay đổi id cửa hàng trong các truy vấn bên dưới.

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');

Lưu ý : Thay đổi tiền tố dưới dạng id cửa hàng cho truy vấn bên dưới.

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);

Hãy áp dụng giải pháp trên, tôi hy vọng nó sẽ giúp bạn giải quyết vấn đề của bạn.

LƯU Ý : Vui lòng sao lưu cơ sở dữ liệu trước khi thực hiện bất kỳ thay đổi nào!


0

Tôi nghĩ Magento 2 không được cài đặt đúng. Vì vậy, nếu có thể hãy cố gắng cài đặt lại phiên bản cập nhật mới nhất và sau đó trước hết là xóa bộ nhớ cache và lập chỉ mục. Nó hoạt động đúng từ thiết lập của tôi.


0

Tôi gỡ lỗi vấn đề. Đối với trường hợp của tôi, đó là do quá trình không hoàn thành trong quá trình tạo cửa hàng vì dữ liệu nặng. Tôi đã tìm thấy một mục bị thiếu trong bảng 'sales_ resultence_meta' cho cửa hàng đó. Tôi đã thử bằng cách thêm nó bằng tay và có thể đặt hàng thành công. Kiểm tra mục nhập cho các cửa hàng có liên quan

Kiểm tra mục nhập cho các cửa hàng có liên quan.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.