it-swarm.it

mysqldump con INSERT ... ON DUPLICATE

Voglio unire i dati da un database all'altro. Quindi creo il dump con mysqldump e quindi lo importazione in un altro database (con la stessa struttura delle tabelle). Non ho alcun problema (come voci duplicate o qualcos'altro) in questo caso.

Ma faccio alcune fusioni a scopo di test e farò la fusione finale in seguito. Quindi, voglio eseguire l'unione (i dati possono essere modificati) alcune volte. Nota, le mie righe nelle mie tabelle non vengono mai eliminate, solo possono essere inserite o aggiornate.

Posso creare mysqldump con l'opzione ON DUPLICATE? Oppure posso unire il dump che inserisce nuovi dati e aggiorna i dati modificati?

Certo, posso inserire ON DUPLICATE nel dump manualmente, ma voglio automatizzare il processo di unione.

22
Xupypr MV

Ci sono opzioni per aiutarti in questo:

  --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.

Tieni presente questo paradigma

  • mysqldump tutto da DB1 a DUMP1
  • caricare DUMP1 in DB3
  • mysqldump tutto da DB2 usando --replace (o --insert-ignore) e --no-create-info in DUMP2
  • caricare DUMP2 in DB3
37
RolandoMySQLDBA