目标是在mysql脚本中执行以下tripplet并对<schema_name>
进行单一定义:
drop schema if exists <schema_name>
create schema <schema_name> default character set utf8
use <schema_name>
然后是一组create table
命令将表插入当前架构。
我使用了@schema_name
之类的用户变量set @schema_name = 'database'
。这导致了准备上述sql语句的必要性:
set @drop = concat('drop schema if exists ', @schema_name);
set @create = concat('create schema ', @schema_name, ' default character set utf8');
set @use = concat('use ', @schema_name);
prepare st_drop from @drop;
prepare st_create from @create;
prepare st_use from @use;
execute st_drop;
execute st_create;
execute st_use;
问题是,use
语句不能以这种方式执行:
错误代码:1295。准备好的语句协议
中不支持此命令
有没有其他选项如何选择use database
之类的当前架构,并选择将<schema_name>
作为参数传递?