mysql 函数语法报错,这个函数是从oracle 迁移过来的。
创建表:
create table CLASSIDSOURCES
(
CLAZZ VARCHAR(255) not null,
STARTID numeric(19) not null,
CURRENTID numeric(19) not null,
DELTA numeric(19) not null,
ENDID numeric(19) not null
);
alter table CLASSIDSOURCES add primary key (CLAZZ);
INSERT INTO ClassIdSources(clazz,Startid,Currentid,Delta,Endid)VALUES(‘com.bm.bmancshop.domain.DomainObject’,9223372036854775807,9223372036854775807,-1000,340000000);
函数:
CREATE FUNCTION NEXTOBJECTID2(className VARCHAR(255)) RETURNS NUMERIC
BEGIN
declare RESULT NUMERIC;
SELECT t.CurrentId + 1
INTO RESULT
FROM ClassidSources t
WHERE t.Clazz = className
and t.delta > 0
and t.CurrentId < t.EndId; ---- 这行报错 1064 - You have an error in your SQL syntax,注释掉这行就没问题
UPDATE ClassidSources cs
SET cs.CurrentId = RESULT
WHERE cs.Clazz = className
AND cs.delta > 0
AND cs.CurrentId < cs.EndId; ---- 这行报错 1064 - You have an error in your SQL syntax ,注释掉这行就没问题
RETURN(RESULT);
END ;
有人能解决这个问题吗,谢谢!