导入mysql转储而不覆盖现有数据
我不小心将mysql表中某个字段的所有记录替换为NULL,并尝试恢复备份,以便在当前表和备份之间运行更新查询。我创建了一个名为db_bckup的新数据库,将其保留为空,然后尝试从命令行导入它:导入mysql转储而不覆盖现有数据,mysql,sql,database,Mysql,Sql,Database,我不小心将mysql表中某个字段的所有记录替换为NULL,并尝试恢复备份,以便在当前表和备份之间运行更新查询。我创建了一个名为db_bckup的新数据库,将其保留为空,然后尝试从命令行导入它: mysql -u root -p db_bckup < mysqlbackupfile.sql 我怀疑sql文件中对“db”的引用正在覆盖我的命令行导入代码 我的问题是:是sql文件还是命令行导致了覆盖?如果原因是sql文件,是否需要手动编辑备份文件以将db名称更改为db_bckup,或者是否有更
mysql -u root -p db_bckup < mysqlbackupfile.sql
我怀疑sql文件中对“db”的引用正在覆盖我的命令行导入代码
我的问题是:是sql文件还是命令行导致了覆盖?如果原因是sql文件,是否需要手动编辑备份文件以将db名称更改为db_bckup,或者是否有更具管理性的方法将文件中的所有“db”引用更改为“db_bckup”?我有点担心会弄乱备份文件,所以我想采用经验丰富的人推荐的最佳方法。如果在mysqldump时指定db\u name,
使用db\u name
将不会在其输出中打印出来。我猜您尝试了--数据库
或--所有数据库
Usage: mysqldump [OPTIONS] database [tables] <= you need to run mysqldump this way
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
我会在以后的备份中记住这一点。我的备份文件中已包含USE db info,因此我正在寻找一种方法,在不覆盖现有db的情况下导入此文件。@user2280711很遗憾,您需要编辑sql文件。我猜您的sql文件太大,无法编辑。你知道塞德吗?sed可以帮助您更轻松地编辑。或者我错了,请解释一下你的问题是什么。
Usage: mysqldump [OPTIONS] database [tables] <= you need to run mysqldump this way
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
-t, --no-create-info Don't write table creation info.