我正在尝试在INSERT语句之后使用“RETURNING”关键字以允许将插入的行数据作为json返回 - 我想要所有字段。这是我尝试过没有成功的事情:
CREATE OR REPLACE FUNCTION createUser(
email_f character varying(50),
nickname_f character varying(16)
) RETURNS json AS $$
BEGIN
INSERT INTO users (email,nickname)
SELECT email_f,nickname_f
RETURNING row_to_json(row(*));
END;
$$ LANGUAGE 'plpgsql';
这给了我一个错误:ERROR:语法错误在“*”或附近
我在这里做错了什么?我想继续使用“Returning”关键字,因为它似乎是最好的方式 - 只要我能让它工作......
答案 0 :(得分:1)
您可能会获得更多成功:
row_to_json(users.*)
答案 1 :(得分:0)
您可以使用中间变量正确执行此操作:
CREATE OR REPLACE FUNCTION createUser(
email_f character varying(50),
nickname_f character varying(16)
) RETURNS json AS $$
declare temp_variable users%rowtype;
BEGIN
INSERT INTO users (email,nickname)
SELECT email_f,nickname_f
RETURNING *
into temp_variable;
return row_to_json(temp_variable);
END;
$$ LANGUAGE 'plpgsql';