您好我尝试在MySQL中编写一个函数,它从表中返回一个值。
我收到了错误:
错误代码:1415。不允许从函数
返回结果集
我知道这意味着什么,但我不知道如何解决这个问题。我只需要一个值,插入行的Id。我很高兴得到任何帮助。
该功能的作用是:
使用Random值在aip_request表中插入一个新行,这样我就可以在插入后识别该行。该函数应返回已创建行的Id。
request_id是一个autovalue。
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
$$
答案 0 :(得分:1)
更改此查询 -
SELECT @random := CAST(RAND(NOW()) AS CHAR(150));
这一个 -
SET @random := CAST(RAND(NOW()) AS CHAR(150));
...您无法执行从存储函数返回数据集的SELECT查询。