2012-02-02 32 views
0

こんにちは私は、テーブルから値を返すMySQLに関数を書き込もうとしています。MySQLの関数からの戻り値

私はそれが何を意味するか知っているが、私はこの問題を解決する方法がわからない:

私はエラーを取得しています。私はちょうど1つの値、挿入された行の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

変更するには、このクエリ - この1と

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

-

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

...あなたは、ストアド・ファンクションからのデータ・セットを返すSELECTクエリを実行することはできません。

+0

ありがとうございますDevart! – chris