我想做类似于以下的事情:
有什么想法吗?
CREATE DATABASE IF NOT EXISTS @database_name;
从阅读mysql准备语句的语法来看,似乎不能用它们来创建数据库,否则像这样的东西就可以了。
SET @s = CONCAT('CREATE DATABASE IF NOT EXISTS ',@database_name);
PREPARE stmt FROM @s;
EXECUTE stmt;
理想情况下,我希望它作为一个可以从shell脚本运行的.sql文件的内容。请参考此链接。#!/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;"
有什么想法吗?
.sql
文件中放置占位符,并使用shell在将文件传递给mysql之前将它们替换为数据库名称。 - MchlCREATE DATABASE
的预处理语句。 - John McCarthy