Reputation: 1030
I want to do something along the lines of
CREATE DATABASE IF NOT EXISTS @database_name;
From reading the mysql syntax for prepared statements it appears that they cant be used to create databases, otherwise something like this would have been ok.
SET @s = CONCAT('CREATE DATABASE IF NOT EXISTS ',@database_name);
PREPARE stmt FROM @s;
EXECUTE stmt;
Ideally I want it as something I can run from a .sql file from a shell script
#!/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;"
Any ideas?
Upvotes: 6
Views: 2362
Reputation: 29769
You could just take the CREATE DATABASE
statement away from your SQL file and issue it from your shell script:
#!/bin/bash
dbname='my_db'
mysql -e "CREATE DATABASE $dbname"
mysql $dbname < /path/to/file/CreateSkeleton.sql
Upvotes: 2