Postgresql Pgsql。返回字段作为函数中的插入结果
我可以将id作为插入结果返回,如Postgresql Pgsql。返回字段作为函数中的插入结果,postgresql,Postgresql,我可以将id作为插入结果返回,如 INSERT INTO table(id,field) VALUES($id,$value) RETURNING id; 但我不能返回它并将其赋值到函数中 var = INSERT INTO table(id,field) VALUES($id,$value) RETURNING id; 或 不要工作。 我该怎么做?试试这个: INSERT INTO table(id,field) VALUES($id,$value) RETURNING id into v
INSERT INTO table(id,field) VALUES($id,$value) RETURNING id;
但我不能返回它并将其赋值到函数中
var = INSERT INTO table(id,field) VALUES($id,$value) RETURNING id;
或
不要工作。
我该怎么做?试试这个:
INSERT INTO table(id,field)
VALUES($id,$value)
RETURNING id into var;
您还可以使用:
var := (INSERT INTO table(id,field) VALUES($id,$value) RETURNING id);
可读性当然是个人的偏好,但我喜欢这种语法,因为它显示了一个明显的赋值。您使用的是什么版本的postgres。我在语句中发现语法错误。我也喜欢这种语法。@nXqd:那是两年前的事了!我想我使用的是PG 9.2.x左右。如果它在函数/proc的主体中,请尝试不使用冒号。如果您在
plpgsql
函数中使用它,则需要先输入变量。@确定吗?适用于我的v9.6。
var := (INSERT INTO table(id,field) VALUES($id,$value) RETURNING id);