sql >> Database >  >> RDS >> Mysql

Woocommerce-bestellingen herstellen

Deze zaak is vrij ingewikkeld, omdat je, zoals je kunt raden, zeker in beide databases (in je back-up en in de werkelijke databases) dezelfde order-ID voor verschillende bestellingen hebt. Wanneer een bestelling is gemaakt, vult deze de databasetabellen "post", "postmeta" in (en misschien wat extra tabellen met betrekking tot woocommerce die sommige wooCommerce-plug-ins hebben gemaakt).

DE ONTBREKENDE GEGEVENS OPHALEN:
Eerste in "post" back-up tabel moet je alle "post_id" vinden met een shop_order "post_type", beginnend op een specifieke datum:
SELECT * FROM 'posts' WHERE 'post_date' > '2016-03-15 00:00:00' AND 'post_type' LIKE 'shop_order' ORDER BY 'post_id' ASC
(u moet hier de juiste begindatum en het juiste uur instellen)

Met al die post_id je gaat alle gerelateerde gegevens in de "postmeta" tabel ophalen:
SELECT * FROM 'postmeta' WHERE 'post_id' > 2059 ORDER BY 'meta_id' ASC
(je moet post_id vervangen "2059" door uw corresponderende echte... )

NIEUWE GEGEVENS VOORBEREIDEN OM IN TE VULLEN:
Voor de tabel "posts" moet u alle verschillende ID-nummers voor "post_id" verschuiven voordat u ze in uw huidige database invoegt, met nieuwe, nog niet bestaande waarden, afhankelijk van de ID's die al door uw daadwerkelijke database worden gebruikt.

Voor de "postmeta"-tabel moet u alle oude "post_id" vervangen door de nieuwe waarden die zojuist zijn gegenereerd in uw "posts"-tabel.

Je moet je winkel in de onderhoudsmodus zetten om nieuwe bestellingen te voorkomen (bijvoorbeeld met deze gratis Onderhoudsmodus plug-in)

Je moet wel gewend zijn aan MySQL en ik denk dat het beter is om alles in een gedupliceerde versie van je webshop te testen. Maak back-ups voordat...

Groeten




  1. MySQL-query om rijen te retourneren die witruimte bevatten

  2. Tekenreeksaaneenschakelingsoperator in Oracle, Postgres en SQL Server

  3. JavaFX-tabellen gebruiken om gegevens te ordenen

  4. MYSQL SOM GROEP BY