put delimiterディレクティブ、セミコロンを忘れて、[select variable = field]のようなmysqlで有効でない構文を使用していました。
tsl構文を使用すると、[関数から結果セットを返すことはできません]、誤って助けてください。
@AndreKRは、すべてそれを私に教えてくれてありがとう。
私はmysqlworkbench 5.2.30 CEを使用しています。 なる仕事関数: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またはtsqlであるはずですか?同時に両方をすることはできません。 tsqlの場合、変数に接頭辞 '@'を付ける必要があります。 – deutschZuid