如果1表

时间:2017-03-15 17:26:05

标签: mysql command-line-arguments options

正如主题所示,我试图使用mysqldump创建一个包含

的文件
CREATE DATABASE IF NOT EXISTS

但仅输出单个表。我已经尝试了多种--databases, - tables等组合,但是我无法将它添加到IF NOT EXISTS部分(它已经注释掉了) ,它似乎只适用于输出所有表。有可能吗?

我尝试过的一些事情:

添加CREATE DATABASE(但不是IF NOT EXISTS部分)但输出所有表格:

mysqldump --host=<host> --user=<u> --password=<p> --port=<port> --verbose --single-transaction --add-drop-table --create-options --databases BBI > outfile.sql

输出1表但不输出CREATE DATABASE:

mysqldump --host=<host> --user=<u> --password=<p> --port=<port> --verbose --single-transaction --add-drop-table --create-options BBI table1 > outfile.sql

给出错误:

mysqldump --host=<host> --user=<u> --password=<p> --port=<port> --verbose --single-transaction --add-drop-table --create-options --databases BBI.table1 > outfile.sql

我是否必须使用

--ignore-table=<table>
每个我不想要的桌子的

选项?那将是一个巨大的痛苦。

1 个答案:

答案 0 :(得分:0)

我能够想出一个解决方法。上面的命令是使用exec()从PHP脚本执行的。我改变了脚本,先做了一个

show create database BBI

查询。然后它修改从那里返回的语句,以添加IF NOT EXISTS部分和USE BBI;声明。然后它运行上面的第二个mysqldump语句,输出1表但没有CREATE DATABASE。然后它将CREATE DATABASE语句添加到mysqldump输出文件的开头,一切正常。