2012-02-02 94 views
0

嗨我尝试在MySQL中编写一个函数,它使我从表中返回一个值。函数在MySQL中的返回值

,我发现了错误:

我知道这意味着什么,但我不知道如何解决这个问题。我只需要一个值,插入行的Id。我很乐意提供任何帮助。

该功能的作用是:
插入一个新的行到aip_request表中,使用随机值,这样我可以识别插入后的行。该函数应该返回创建的行的Id。 request_id是一个自动值。

DROP FUNCTION IF EXISTS `sp_get_new_request_id`; 
DELIMITER $$ 

CREATE FUNCTION `sp_get_new_request_id`() 
RETURNS BIGINT 
BEGIN 
DECLARE var_random bigint; 
SET @random := CAST(RAND(NOW()) AS CHAR(150)); 
INSERT INTO aip_request 
    (Firstname) 
    VALUES(@random); 
SELECT request_id INTO var_random FROM aip_request 
WHERE Firstname = @random 
LIMIT 1; 
Return var_random; 
END 
$$ 

回答

1

更改此查询 -

SELECT @random := CAST(RAND(NOW()) AS CHAR(150)); 

与这一个 -

SET @random := CAST(RAND(NOW()) AS CHAR(150)); 

...你不能执行返回数据集从存储的功能SELECT查询。

+0

谢谢Devart! – chris 2012-02-02 11:26:42