sql >> Databáze >  >> RDS >> Mysql

MySQL importovat databázi, ale ignorovat konkrétní tabulku

Přijatá odpověď RandomSeed může trvat dlouho! Import tabulky (jen kvůli pozdějšímu vypuštění) může být v závislosti na velikosti velmi zbytečný.

Pro soubor vytvořený pomocí

mysqldump -u user -ppasswd --opt --routines DBname > DBdump.sql

Aktuálně dostávám soubor o velikosti 7 GB, z čehož 6 GB jsou data pro tabulku protokolů, která tam „nemusím“ být; opětovné načtení tohoto souboru trvá několik hodin. Pokud potřebuji znovu načíst (pro účely vývoje nebo pokud je to někdy nutné pro živé obnovení), prohlédnu soubor takto:

sed '/INSERT INTO `TABLE_TO_SKIP`/d' DBdump.sql > reduced.sql

A znovu načíst pomocí:

mysql -u user -ppasswd DBname < reduced.sql

To mi dává kompletní databázi s „nežádoucí“ tabulkou vytvořenou, ale prázdnou. Pokud opravdu stoly vůbec nechcete, jednoduše prázdné stoly po dokončení načítání zahoďte.

Pro více tabulek můžete udělat něco takového:

sed '/INSERT INTO `TABLE1_TO_SKIP`/d' DBdump.sql | \
sed '/INSERT INTO `TABLE2_TO_SKIP`/d' | \
sed '/INSERT INTO `TABLE3_TO_SKIP`/d' > reduced.sql

Existuje chyba – dávejte si pozor na procedury ve vašem výpisu, které mohou obsahovat „INSERT INTO TABLE_TO_SKIP“.



  1. Provádění sady SQL dotazů pomocí dávkového souboru?

  2. Django:Jaké jsou nejlepší postupy pro migraci projektu ze sqlite na PostgreSQL

  3. Instalace MySQL:CHYBA:Nepodařilo se sestavit nativní rozšíření drahokamů

  4. Cizí klíč pro více tabulek a sloupců?