所以我使用的命令如下:
mysql db < db.sql
但每当我使用尚不存在的数据库执行此操作时,就会出错。
如果不存在,是否有一个命令标志要添加到该文件来创建数据库? 还是要插入文件开头的一行代码?
TIA。
答案 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命令行。