我们正在从FirebirdSQL迁移到MySQL,我们有一个存储函数,它接受一个int值并产生该行数。在将其转换为MySQL函数时,它返回结束增量数而不是行。
火鸟
contents_object = repository.contents(file_path)
push_status = contents_object.update("test_message",contents)
运行该功能:
SELECT CreateList(5)结果:
1 2 3 4 5
的MySQL
SET TERM ^ ;
RECREATE PROCEDURE CREATELIST ( NUM INTEGER) RETURNS ( CNT INTEGER)
AS BEGIN
Cnt = 1;
WHILE (Cnt <= num) DO
BEGIN SUSPEND; /* Return next line */
Cnt = Cnt + 1; END END^
SET TERM ; ^
运行该功能:
SELECT CreateList(5)结果:
6
答案 0 :(得分:1)
要在MySQL中获取表,必须使用存储过程:
DELIMITER ^
PROCEDURE `CreateList`(IN `num` INT)
BEGIN
DECLARE cnt INT;
SET cnt = 1;
create TEMPORARY table t (i int);
sloop:LOOP
if (cnt <= num)
THEN SET cnt = cnt +1;
insert into t value(cnt);
ELSE LEAVE sloop;
END IF;
END LOOP;
select * from t;
END