我想做一些类似以下的事情
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;"有什么想法吗?
发布于 2014-02-27 20:40:07
您只需将CREATE DATABASE语句从您的SQL文件中删除,并从您的shell脚本发出它:
#!/bin/bash
dbname='my_db'
mysql -e "CREATE DATABASE $dbname"
mysql $dbname < /path/to/file/CreateSkeleton.sqlhttps://stackoverflow.com/questions/7468115
复制相似问题