gpt4 book ai didi

mysql - 导入数据库时​​如何忽略某些 MySQL 表?

转载 作者:IT老高 更新时间:2023-10-28 13:00:37 26 4
gpt4 key购买 nike

我有一个包含一个数据库和大约 150 个表的大型 SQL 文件。我想使用 mysqlimport 来导入该数据库,但是,我希望导入过程忽略或跳过几个表。导入所有表但忽略其中一些表的正确语法是什么?谢谢。

最佳答案

RandomSeed 接受的答案可能需要很长时间!导入表(只是为了稍后删除)可能会非常浪费,具体取决于大小。

对于使用创建的文件

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

我目前得到一个大约 7GB 的文件,其中 6GB 是我不需要的日志表的数据;重新加载此文件需要几个小时。如果我需要重新加载(出于开发目的,或者如果需要实时恢复),我会浏览该文件:

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

然后重新加载:

mysql -u user -ppasswd DBname < reduced.sql

这为我提供了一个完整的数据库,其中创建了“不需要的”表但为空。如果您真的根本不需要这些表,只需在加载完成后删除空表即可。

对于多个表,您可以这样做:

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

有一个“陷阱” - 注意转储中可能包含“INSERT INTO TABLE_TO_SKIP”的过程。

关于mysql - 导入数据库时​​如何忽略某些 MySQL 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16735344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com