2012-02-02 66 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