Php 如何仅通过命令行导出mysql数据库结构,而从列表中指定的表中导出一些特定的表数据
我想通过命令行导出MySQL数据库,有以下两个条件:Php 如何仅通过命令行导出mysql数据库结构,而从列表中指定的表中导出一些特定的表数据,php,mysql,database,Php,Mysql,Database,我想通过命令行导出MySQL数据库,有以下两个条件: 仅导出数据库表结构 但在导出数据时,我希望导出命令中提到的指定表数据和结构 我有一个包含60个表的数据库,其中一个名为Country的表包含静态值。所以我想在导出的文件中也导出它的数据,其余的表只包含导出文件中的结构 有谁能建议我使用MySQL命令根据上述条件转储数据库吗?第一种方法: mysqldump--no data-h-u-p>tables.sql 这将把数据库表结构转储到文件tables.sql中 --no data选项指定不转储表
Country
的表包含静态值。所以我想在导出的文件中也导出它的数据,其余的表只包含导出文件中的结构
有谁能建议我使用MySQL命令根据上述条件转储数据库吗?第一种方法:
mysqldump--no data-h-u-p>tables.sql
这将把数据库表结构转储到文件tables.sql
中
--no data
选项指定不转储表内容
第二种方法:
(如果您想在批处理中使用生成的.sql
文件进行更多操作,这将非常有用。)
- 使用
命令查看创建表的实际命令show create table
- 创建一个Bash脚本,对要导出的每个表执行该MySQL命令。将
的输出通过管道传输到文本文件show create table
- 我认为您需要为此发出两个单独的命令
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
这将把Country表的结构和数据转储到同一个文件中。感谢onkar,上述解决方案工作正常。但是,如果我们有多个要忽略的静态表,该怎么办呢?您可以在一个命令中使用多个ignore语句--ignore table=db_name.tbl_name1--ignore table=db_name.tbl_name2,如下所示。如果您尝试的操作成功,请接受答案。