Det accepterede svar fra RandomSeed kunne tage lang tid! Import af bordet (bare for at droppe det senere) kan være meget spild afhængigt af størrelsen.
For en fil oprettet ved hjælp af
mysqldump -u user -ppasswd --opt --routines DBname > DBdump.sql
Jeg får i øjeblikket en fil på 7GB, hvoraf 6GB er data til en logtabel, som jeg ikke 'behøver' at være der; genindlæsning af denne fil tager et par timer. Hvis jeg har brug for at genindlæse (til udviklingsformål, eller hvis det nogensinde er nødvendigt for en livegendannelse), skimmer jeg filen således:
sed '/INSERT INTO `TABLE_TO_SKIP`/d' DBdump.sql > reduced.sql
Og genindlæs med:
mysql -u user -ppasswd DBname < reduced.sql
Dette giver mig en komplet database, med den "uønskede" tabel oprettet, men tom. Hvis du virkelig ikke vil have tabellerne overhovedet, skal du blot slippe de tomme tabeller, når indlæsningen er færdig.
For flere borde kan du gøre noget som dette:
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
Der ER en "gotcha" - pas på procedurer i dit dump, der kan indeholde "INSERT INTO TABLE_TO_SKIP".