繁体   English   中英

如果1表不存在,则创建数据库的mysqldump

[英]mysqldump with create database if not exist for 1 table

正如主题建议的那样,我正在尝试使用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>

我不想要的每张桌子的选项? 那将是一个巨大的痛苦。

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

show create database BBI

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM