MySQL创建数据库如果文件导入命令行不存在

时间:2016-05-27 16:58:25

标签: mysql sql

所以我使用的命令如下:

mysql db < db.sql

但每当我使用尚不存在的数据库执行此操作时,就会出错。

如果不存在,是否有一个命令标志要添加到该文件来创建数据库? 还是要插入文件开头的一行代码?

TIA。

2 个答案:

答案 0 :(得分:2)

你的意思是这两行吗?

create schema if not exists myNewDb;
use myNewDb;    -- make it the active one

第二个命令将选择db(无论它是否只是创建它)。

答案 1 :(得分:1)

所以我的解决方案是编写一个PHP程序来迭代每个db的sql文件并执行以下操作:

/*
$mysqldir being where the mysql exe is installed too.
$db being the database name
$file being where the sql file is
*/

$exec_str = "\"".$mysqldir."mysql\" -h localhost -u {username} -p{password} -e \"CREATE DATABASE IF NOT EXISTS `".$db."`\"";
system($exec_str, $status);
$exec_str = "\"".$mysqldir."mysql\" -h localhost -u {username} -p{password} ".$db." < \"".$file."\"";
system($exec_str, $status);

基本上:(部分是@Drew回答的)

CREATE DATABASE IF NOT EXISTS `database_name`
`database_name` < "C:\file\file2\db.sql"

来自mysql命令行。