mysql函数中的ibatis和分隔符
我尝试在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
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函数有关,但我认为您发布的代码没有这个函数