mysql函数中的ibatis和分隔符

mysql函数中的ibatis和分隔符,mysql,ibatis,mybatis,delimiter,Mysql,Ibatis,Mybatis,Delimiter,我尝试在ibatis迁移脚本中使用以下示例 delimiter // drop function if exists true_function // create function true_function(p_param int) returns int deterministic sql security invoker return true // drop function if exists get_next_value// create function get_n

我尝试在ibatis迁移脚本中使用以下示例

delimiter //
drop function if exists true_function //
create function true_function(p_param int) returns int
  deterministic
  sql security invoker
  return true
//

drop function if exists get_next_value//
create function get_next_value(p_name varchar(30)) returns int
  deterministic
  sql security invoker
begin  
  declare current_val integer;

  update mysql.sequences 
    set value = value + 1
    where name = p_name 
      and true_function((@current_val := mysql.sequences.value) is not null);

  return @current_val;
end//
delimiter ;
但ibatis抛出了这个错误:

…执行时出错:分隔符// 删除函数(如果存在)获取下一个值测试// 创建函数get_next_value_test(p_name varchar(30))返回int 确定性 sql安全调用程序 开始
声明当前值整数 . 原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解使用“delimiter/…”附近的正确语法

我已经尝试设置allowMultiQueries并发送完整脚本,但没有成功。 你知道如何执行这个脚本吗

Thx,
T.

我遇到了同样的问题

下面的网站似乎提供了这个问题的答案

诚然,它使用的是MyBatis而不是iBatis,但考虑到iBatis已经“退役”,这可能是一个不错的举措

替换的基本答案

delimiter //
delimiter ;

然后更换

delimiter //
delimiter ;


这个错误与get_next_value_test函数有关,但我认为您发布的代码没有这个函数