正如主题所示,我试图使用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>
每个我不想要的桌子的选项?那将是一个巨大的痛苦。
答案 0 :(得分:0)
我能够想出一个解决方法。上面的命令是使用exec()从PHP脚本执行的。我改变了脚本,先做了一个
show create database BBI
查询。然后它修改从那里返回的语句,以添加IF NOT EXISTS部分和USE BBI;声明。然后它运行上面的第二个mysqldump语句,输出1表但没有CREATE DATABASE。然后它将CREATE DATABASE语句添加到mysqldump输出文件的开头,一切正常。