0

我有一个mysql循环查询如下:

DELIMITER $$    

DROP function IF EXISTS getTestAccounts $$;

CREATE FUNCTION getTestAccounts(endTime INT) RETURNS INT
BEGIN
    DECLARE x,y INT;
    DECLARE c1,result varchar(255);
    SET c1 = '';
    SET result = '';
    SET x = endTime;
    SET y = 4;
    sloop:LOOP
       SELECT count(*) INTO c1 FROM `accounts` where `lifeEnd` <= x;
       IF y > 0 THEN
          SET x = x-3600;
          SET y = y - 1;
          SET result = CONCAT(result,c1,',');
          ITERATE sloop;
       ELSE
           LEAVE sloop;
       END IF;  
    END LOOP;
    RETURN result;
END  $$
DELIMITER ;

它执行成功。在制作一个

SELECT getTestAccounts(1368193391)

它显示db.getTestAccounts does not exist

为了交叉检查这个我用

SHOW FUNCTION STATUS;

它列出了很久以前创建的所有函数,但没有列出当前函数......

花了将近一天的时间不知道错误发生在哪里.....谁能告诉我为什么它没有在数据库中创建...谢谢

4

1 回答 1

0

你的问题:

DROP function IF EXISTS getTestAccounts $$;

删除行尾的分号,它应该可以工作。

但是,当按现在的方式执行脚本时,您应该会收到错误消息。

于 2013-04-23T14:50:36.620 回答