【发布时间】:2011-11-09 23:58:32
【问题描述】:
我忘记了放置分隔符指令,一些分号,并且使用了 tsl 语法,例如 [select variable = field],这在 mysql 中无效。
使用 tsl 语法时的 Mysql 错误是 [不允许从函数返回结果集] 并且没有多大帮助。
@AndreKR 把这一切都指向我,谢谢。
我使用 mysqlworkbench 5.2.30 CE。
功函数变为:
delimiter //
CREATE FUNCTION nextval (seq_name varchar(100))
RETURNS bigint(20)
READS SQL DATA
NOT DETERMINISTIC
BEGIN
DECLARE workval bigint(20);
SELECT count(1) into workval
FROM tip_sequence
WHERE sequencename = seq_name;
IF workval <> 1 THEN
DELETE
FROM tip_sequence
WHERE sequencename = seq_name;
INSERT
INTO tip_sequence (sequencename, sequenceval, sequencestep)
VALUES (seq_name, 1, 1);
END IF;
SELECT sequenceval into workval
FROM tip_sequence
WHERE sequencename = seq_name;
UPDATE tip_sequence
SET sequenceval = sequenceval + sequencestep
WHERE sequencename = seq_name;
RETURN workval;
END//
delimiter ;
【问题讨论】:
-
我很困惑..这应该是mysql还是tsql?它不能同时是两者。如果是tsql,变量需要以'@'为前缀。