函数不从插入中返回值

问题描述 投票:0回答:2

我有此代码:

CREATE OR REPLACE FUNCTION get_create_tagId(tagName text) RETURNS text AS $$
BEGIN
        IF EXISTS(
           SELECT * FROM tags WHERE tag = tagName)
        THEN
            RETURN(SELECT id FROM tags WHERE tag=tagName);
        ELSE 
              INSERT INTO tags (tag) VALUES(tagName) RETURNING id;
        END IF ;
END
$$ LANGUAGE plpgsql;

但是当我运行它时我得到

错误:查询没有结果数据的目的地

即使我有RETURNING id我应该做什么/更改?

sql postgresql
2个回答
0
投票
您可以声明新变量,并获得

tag_id


0
投票
您需要将返回的ID存储到变量中,然后在ELSE分支中返回该变量:
© www.soinside.com 2019 - 2024. All rights reserved.