it-swarm-eu.dev

mysqldump s INSERT ... ON DUPLICATE

Chci sloučit data z jedné databáze do druhé. Takže vytvořím výpis s mysqldump a poté jej importuji do jiné databáze (se stejnou strukturou tabulek). V tomto případě nemám žádné problémy (například duplicitní záznamy nebo něco jiného).

Ale udělám nějaké sloučení pro účely testování a později se konečně spojím. Chci tedy provést sloučení (data se mohou změnit) několikrát. Všimněte si, že mé řádky v mých tabulkách se nikdy neodstraní, lze je pouze vkládat nebo aktualizovat.

Mohu vytvořit mysqldump s volbou ON DUPLICATE? Nebo mohu sloučit výpis, který vkládá nová data a aktualizuje upravená data?

Jistě, můžu vložit ON DUPLICATE na výpisu ručně, ale chci automatizovat proces sloučení.

22
Xupypr MV

V této oblasti vám mohou pomoci následující možnosti:

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

Mějte na paměti toto paradigma

  • mysqldump vše od DB1 do DUMP1
  • načíst DUMP1 do DB3
  • mysqldump vše z DB2 pomocí --replace (nebo --insert-ignore) a --no-create-info do DUMP2
  • načíst DUMP2 do DB3
37
RolandoMySQLDBA