2017-07-19 75 views
4

我想通过命令行与以下为以下两个条件导出MySQL数据库中指定,如何导出mysql数据库结构仅throught命令行,但出口某些特定的表从列表中

  1. 导出数据库表中的数据只有结构。
  2. 但是在导出数据时,我想要导出指定的指定表数据和结构。

我有一个数据库,其中包含60个表,并从他们,一个名为Country表包含静态值。所以我想在导出的文件中导出它的数据,其余的表只包含导出文件中的结构。

任何人都可以建议我MySQL命令来基于上述条件转储数据库吗?

回答

1

第一种方法:

mysqldump --no-data -h <host> -u <username> -p<password> <database> > tables.sql

这将转储数据库表结构到文件tables.sql

--no-data选项指定不转储表内容。

方法二:

(如果你想更多地与产生.sql文件批处理这可能是有用的)

  • 使用show create table命令查看实际的命令来创建一张桌子。
  • 创建一个Bash脚本,为每个要导出的表执行该MySQL命令。将输出从show create table <table_name>输出到文本文件。
1

我认为你需要为此启动2个单独的命令。

mysqldump -u root -p password --no-data --ignore-table=db_name.tbl_name db_name > db_name.sql 

以上查询将转储数据库的所有结构,而无需您的国家表结构和数据。

mysqldump -u root -p password db_name tbl_name >> db_name.sql 

而这个将转储国家表的结构和数据到相同的文件。

+0

感谢onkar上述解决方案正常工作。但是如果假设我们有多个静态表被忽略。 –

+0

您可以在单个命令中使用多个忽略语句 --ignore-table = db_name.tbl_name1 --ignore-table = db_name.tbl_name2 像这样。 – Onkar

+0

如果你在试图做的事情上取得成功,请接受答案。 – Onkar