我尝试在 ibatis 迁移脚本中使用来自 Big DBA Head 的以下示例。

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抛出这个错误:



我已经尝试设置 allowMultiQueries 和 send_full_script 但没有成功。
你有什么想法来执行这个脚本吗?

谢谢,
T。

最佳答案

我遇到了同样的问题...

以下站点似乎提供了此问题的答案。

https://github.com/mybatis/migrations/issues/49

当然,它使用的是 MyBatis 而不是 iBatis,但考虑到 iBatis 已经“退休”,这可能是一个很好的举措。

替换的基本答案

delimiter //


-- @DELIMITER //

然后替换
delimiter ;


-- @DELIMITER ;

关于mysql - mysql 函数中的 ibatis 和分隔符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14607288/

10-16 14:40