it-swarm-eu.dev

mysqldump mit INSERT ... ON DUPLICATE

Ich möchte Daten von einer Datenbank in eine andere zusammenführen. Also erstelle ich einen Dump mit mysqldump und importiere ihn dann in eine andere Datenbank (mit derselben Tabellenstruktur). Ich habe in diesem Fall keine Probleme (wie doppelte Einträge oder etwas anderes).

Aber ich führe zu Testzwecken einige Zusammenführungen durch und werde sie später endgültig zusammenführen. Daher möchte ich die Zusammenführung einige Male ausführen (Daten können geändert werden). Beachten Sie, dass meine Zeilen in meinen Tabellen niemals gelöscht werden, sondern nur eingefügt oder aktualisiert werden können.

Kann ich mysqldump mit der Option ON DUPLICATE erstellen? Oder kann ich einen Dump zusammenführen, der neue Daten einfügt und geänderte Daten aktualisiert?

Klar, ich kann ON DUPLICATE im Speicherauszug manuell, aber ich möchte den Zusammenführungsprozess automatisieren.

22
Xupypr MV

Es gibt Optionen, die Ihnen dabei helfen:

  --insert-ignore     Insert rows with INSERT IGNORE.
  --replace           Use REPLACE INTO instead of INSERT INTO.
  -t, --no-create-info
                      Don't write table creation info.

Denken Sie an dieses Paradigma

  • mysqldump alles von DB1 in DUMP1
  • laden Sie DUMP1 in DB3
  • mysqldump alles aus DB2 mit --replace (oder --insert-ignore) und --no-create-info in DUMP2
  • laden Sie DUMP2 in DB3
37
RolandoMySQLDBA