magento 2语法错误或访问冲突:1103错误的表名”,查询为:INSERT INTO``()VALUES()


9

Magento 2,当从新创建的商店下订单时,单击错误下方的下订单按钮后显示,

语法错误或访问冲突:1103错误的表名'',查询为:INSERT INTO``()VALUES()

并停止下订单功能。


您能否告诉我您已经从Magento1.9迁移到Magento2。如果是,那么我为您提供了解决方案。
Manish

@Manish我有什么解决方案?
Webninja

@Webninja,按照Vu Anh的回答(如下),使每个商店都有条目。这里1 | 订购| 0 | sequence_order_0 0是商店ID。发生迁移时,某些数据未正确插入。
Manish

Answers:


7

如果您以编程方式创建了商店,则必须add_store使用store modelin参数来调度事件。

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

如果您查看\Magento\SalesSequence\Observer\SequenceCreatorObserver,则将为此add_store事件邀请该观察员

它将在sales_sequence_meta表中插入一些与您的商店有关的数据


7

当您尝试向表关系船中插入新行以自动序列化时,会遇到此问题。要解决此问题,请在表“ sales_sequence_meta”中看到“ entity_type” =“ order”,并检查并确保此entry_type =“ order”存在于所有商店中。如果您检查是否缺少任何商店ID,请插入新的。

meta_id | entity_type | store_id | sequence_table

1 | 订购| 0 | sequence_order_0


2

在各种情况下,Magento不会为商店创建销售顺序表。这些是在其中创建订单增量ID,装运增量ID等的表。因此,尝试将增量ID分配给新订单时,结帐失败。表格示例:

sequence_creditmemo_1
sequence_invoice_1
sequence_order_1
sequence_rma_1
sequence_shipment_1

这是Magento CLI命令的模块,该模块将为给定商店创建缺少的销售顺序表:https : //github.com/joeshelton-wagento/fixsalessequence


2

当缺少多商店表时,会发生上述错误。问题背后的主要原因是,使用数据迁移工具未完成的任何第三方扩展来完成迁移。

注意:在进行任何更改之前,请备份数据库!

您会注意到,以下表格可能会丢失:

假设:如果商店3不能正常运行,那么商店1,商店2可以正常工作。

如果商店3无法正常工作,则需要创建以下表:

sequence_creditmemo_3 sequence_invoice_3 sequence_order_3 sequence_shipment_3

注意:您可以从其他现有表(例如sequence_creditmemo_1,sequence_invoice_1,sequence_order_1,sequence_shipment_1)获取这些表的结构


注意:需要更改表名称中的商店标识。

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;

需要使用相应的序列概要文件表条目来更新以下表:

sales_sequence_meta sales_sequence_profile

注意:需要在以下查询中更改商店ID。

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

注意:将前缀更改为以下查询的商店标识。

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

请应用以上解决方案,希望对您有所帮助。

注意:进行任何更改之前,请备份数据库!


0

我认为Magento 2安装不正确。因此,如果可能,请尝试重新安装最新的更新版本,然后首先清除缓存并进行索引。从我的设置中可以正常工作。


0

我调试问题。就我而言,这是由于数据繁重导致商店创建过程中流程不完整。我发现该商店的“ sales_sequence_meta”表中缺少条目。我尝试通过手动添加它并能够成功下订单。 检查相关商店的条目

检查相关商店的条目。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.