我想按照
的方式做点什么 CREATE DATABASE IF NOT EXISTS @database_name;
从阅读the mysql syntax for prepared statements看来,它们似乎无法用于创建数据库,否则这样的事情就可以了。
SET @s = CONCAT('CREATE DATABASE IF NOT EXISTS ',@database_name);
PREPARE stmt FROM @s;
EXECUTE stmt;
理想情况下,我希望它是来自shell脚本的I can run from a .sql file
#!/bin/bash
MYSQL="mysql"
`${MYSQL} --version >& /dev/null`
if [ $? != 0 ]; then
MYSQL="mysql5"
`${MYSQL} --version > /dev/null`
if [ $? != 0 ]; then
echo "Can't find mysql binary?"
exit 1
fi
fi
${MYSQL} -u root --password=###### -e "set @database_name:='ben_search';source CreateSkeleton.sql;"
有什么想法吗?
答案 0 :(得分:2)
您可以从您的SQL文件中取出CREATE DATABASE
语句并从shell脚本中发出它:
#!/bin/bash
dbname='my_db'
mysql -e "CREATE DATABASE $dbname"
mysql $dbname < /path/to/file/CreateSkeleton.sql