magento 2 Syntaxfehler oder Zugriffsverletzung: 1103 Falscher Tabellenname '', Abfrage war: INSERT INTO `` () VALUES ()

9

Magento 2, wenn Bestellung aus neu erstelltem Geschäft, nach Klicken auf die Schaltfläche Bestellung aufgeben unter Fehler ist dispaly,

Syntaxfehler oder Zugriffsverletzung: 1103 Falscher Tabellenname '', Abfrage war: INSERT INTO `` () VALUES ()

Und die Bestellung aufgeben.

Manashvi Birla
quelle
Würden Sie mir bitte mitteilen, dass Sie von Magento1.9 auf Magento 2 migriert sind? Wenn ja, dann habe ich eine Lösung für Sie.
Manish
@ Manish Ich habe also was ist die Lösung?
Webninja
@Webninja, folge der Antwort von Vu Anh (unten) und mache den Eintrag für jedes Geschäft. Hier 1 | bestellen | 0 | sequence_order_0 0 ist die Geschäfts-ID. Während der Migration werden einige Daten nicht richtig eingefügt.
Manish

Antworten:

7

Wenn Sie Ihren Shop programmgesteuert erstellt haben, müssen Sie ein Ereignis add_storemit Ihrem store modelin-Parameter auslösen.

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

Wenn Sie schauen \Magento\SalesSequence\Observer\SequenceCreatorObserver, wird dieser Beobachter für das add_storeEreignis gerufen

Es werden einige Daten zu Ihrem Geschäft in die sales_sequence_metaTabelle eingefügt

Sony
quelle
7

Dieses Problem tritt auf, wenn Sie versuchen, eine neue Zeile in eine Tabellenbeziehung einzufügen, um die Sequenz automatisch zu generieren. Um dieses Problem zu beheben, überprüfen Sie in der Tabelle "sales_sequence_meta" mit "entity_type" = "order", ob dieser entity_type = "order" in allen Ihren Filialen vorhanden ist. Fügen Sie eine neue ein, wenn Sie überprüfen, ob eine Geschäfts-ID fehlt.

meta_id | entity_type | store_id | sequence_table

1 | bestellen | 0 | sequence_order_0

Vu Anh
quelle
2

Unter verschiedenen Umständen erstellt Magento keine Verkaufssequenztabellen für ein Geschäft. Hierbei handelt es sich um Tabellen, in denen Bestellinkrement-IDs, Sendungsinkrement-IDs usw. erstellt werden. Das Auschecken schlägt also fehl, wenn versucht wird, einer neuen Bestellung eine Inkrement-ID zuzuweisen. Beispieltabellen:

sequence_creditmemo_1
sequence_invoice_1
sequence_order_1
sequence_rma_1
sequence_shipment_1

Hier ist ein Modul für einen Magento-CLI-Befehl, mit dem fehlende Verkaufssequenztabellen für ein bestimmtes Geschäft erstellt werden: https://github.com/joeshelton-wagento/fixsalessequence

Joe Shelton
quelle
2

Der obige Fehler tritt auf, wenn Tabellen für mehrere Speicher fehlen. Der Hauptgrund für das Problem liegt darin, dass die Migration mit einer Drittanbietererweiterung durchgeführt wird, die nicht vom Datenmigrationstool durchgeführt wird.

HINWEIS : Bitte sichern Sie die Datenbank, bevor Sie Änderungen vornehmen!

Sie werden feststellen, dass möglicherweise folgende Tabellen fehlen:

Annahme : Speicher 1, Speicher 2 funktionieren einwandfrei, wenn Speicher 3 nicht ordnungsgemäß funktioniert.

Wenn Speicher 3 nicht ordnungsgemäß funktioniert, müssen folgende Tabellen erstellt werden:

sequence_creditmemo_3 sequence_invoice_3 sequence_order_3 sequence_shipment_3

HINWEIS: Sie können die Struktur dieser Tabellen aus anderen vorhandenen Tabellen wie sequence_creditmemo_1, sequence_invoice_1, sequence_order_1, sequence_shipment_1 abrufen


HINWEIS : Die Geschäfts-ID im Tabellennamen muss geändert werden.

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;

Folgende Tabellen müssen mit den entsprechenden Einträgen in der Sequenzprofiltabelle aktualisiert werden:

sales_sequence_meta sales_sequence_profile

Hinweis : Die Geschäfts-ID muss in den folgenden Abfragen geändert werden.

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

Hinweis : Ändern Sie das Präfix als Geschäfts-ID für die folgende Abfrage.

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

Bitte wenden Sie die oben genannte Lösung an. Ich hoffe, sie hilft Ihnen bei der Lösung Ihres Problems.

HINWEIS : Bitte sichern Sie die Datenbank, bevor Sie Änderungen vornehmen!

Jitendra Mandloi
quelle
0

Ich denke, Magento 2 ist nicht richtig installiert. Versuchen Sie also nach Möglichkeit, die neueste aktualisierte Version neu zu installieren, und löschen Sie anschließend zunächst den Cache und führen Sie die Indizierung durch. Es funktioniert richtig von meinem Setup.

Nissen
quelle
0

Ich debugge das Problem. In meinem Fall war der Prozess während der Filialerstellung aufgrund umfangreicher Daten unvollständig. Ich habe festgestellt, dass in der Tabelle 'sales_sequence_meta' für diesen Shop ein Eintrag fehlt. Ich habe versucht, es manuell hinzuzufügen und konnte erfolgreich bestellen. Überprüfen Sie den Eintrag für das entsprechende Geschäft

Überprüfen Sie den Eintrag für das entsprechende Geschäft.

91Devendra Kushwah
quelle