如何参数化使用声明?

时间:2015-12-17 09:09:51

标签: mysql prepared-statement

目标是在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>作为参数传递?

0 个答案:

没有答案