put delimiterディレクティブ、いくつかのセミコロンを忘れていて、mysqlで有効でない[select variable = field]のようなtsl構文を使用していました。
tsl構文を使用すると、[関数から結果セットを返すことはできません]、誤って助けてください。
@AndreKRは、すべてそれを私に教えてくれてありがとう。
私はmysqlworkbench 5.2.30 CEを使用しています。 仕事関数になる:カスタムnextval関数内のmysql bigint変数宣言でエラーが発生しました
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バージョン.... –
@Mitch小麦バージョン[Serverバージョン:5.1.53-コミュニティのMySQL Community Serverの(GPL)]である – newway