Eine Frage an SQL Cracks (ich bin leider „noch“ keiner
Ich habe folgenden Befehl gefunden, mit welchem man alle Bestellungen per SQL löschen kann.
delete ot2.*, ot.*, oli.*, odp.*, od.*, oc.*, oa.*, o.* from `order` o
left join order_address oa on o.id = oa.order_id
left join order_customer oc on o.id = oc.order_id
left join order_delivery od on o.id = od.order_id
left join order_delivery_position odp on od.id = odp.order_delivery_id
left join order_line_item oli on o.id = oli.order_id
left join order_tag ot on o.id = ot.order_id
left join order_transaction ot2 on o.id = ot2.order_id;
oder Kunden
delete cwp.*, cw.*, ct.*, cr.*, ca.*, c.* from customer c
left join customer_address ca on c.id = ca.customer_id
left join customer_recovery cr on c.id = cr.customer_id
left join customer_tag ct ON c.id = ct.customer_id
left join customer_wishlist cw on c.id = cw.customer_id
left join customer_wishlist_product cwp on cw.id = cwp.customer_wishlist_id;
Ich möchte nun aber gerne alle Bestellungen von Datenbank 1 in Datenbank 2 kopieren. Die Struktur von DB 2 ist dabei bereits vorhanden und die Tabelle ist leer. Ich denke anstatt dem delete könnte ich sicher mit fast identischen Code und dem Insert Befehl mein gewünschtes Ergebnis erreichen.
Vielleicht kann mir hier jemand ein kurzes Beispiel nennen?
Ich kenne mich mit der Showpare-DB nicht aus, aber wenn die Befehle wirklich alel Bestellungen und Kunden löschen, solltest du auch auf selben Wege die Daten importieren können.
Müsstest anstelle des „Delete“ ein „Insert into“ nutzen und dann noch die Datenbankverbindungen mit einbinden.
Ich habs mal so versucht. Ergibt aber einen Fehler
INSERT INTO ch77807_sw6.customer
SELECT c., ca., cr., ct., cw., cwp. FROM ch77807_sw646.customer c
LEFT JOIN ch77807_sw646.customer_address ca ON c.id = ca.customer_id
LEFT JOIN ch77807_sw646.customer_recovery cr ON c.id = cr.customer_id
LEFT JOIN ch77807_sw646.customer_tag ct ON c.id = ct.customer_id
LEFT JOIN ch77807_sw646.customer_wishlist cw ON c.id = cw.customer_id
LEFT JOIN ch77807_sw646.customer_wishlist_product cwp ON cw.id = cwp.customer_wishlist_id;
Ich kann dir leider nicht groß helfen, da ich mich wie bereits erwähnt mit der Shopware-DB nicht auskenne und dir somit nicht versichern kann ob die Logik gewährleistet ist.
Da du selbst auch nicht mit der DB vertraut bis, würde ich dir dazu raten es sein zu lassen
Klar, das würde möglicherweise auch gehen. Es liegen jedoch beide DBs auf dem selben Server und somit sollte das Kopieren per SQL eigentlich die einfachere und schnellere Variante sein (wenn man den korrekten Syntax kennt)
Oft gibt es bei Import und Export über phpMySql Probleme. Nur schon das Löschen von Kunden oder Bestellungen: Wenn man in phpMySql „Leeren“ anwählt, erhält man sofort eine Fehlermeldung wegen den diversen Abhängigkeiten. Ich habs nur über den oben genannten SQL Befehl geschafft.
in DB1 durch die gefüllten von DB2 ersetzt (über phpMyAdmin). Das funktionierte nachdem ich die bereits vorhandenen Datenbanken in DB1 umbenennt und dann durch diejenigen aus DB2 ersetzt habe. Nur die Daten importieren, gibt ja leider den ID Fehler. Leider scheinen die UUIDs über diese Tabellen hinaus verknüft zu sein. Denn obwohl ich alle Tabellen erstellt habe, erscheint kein einziger Kunde im Admin. Puuuh, das Ding ist komplizierter als gedacht. Falls jemandem noch was einfällt, ich wäre überglücklich