Omu*_*Omu 47 sql postgresql sql-returning
我尝试这样做,但这是一个语法错误,我做错了什么?
declare myid := insert into oameni values(default,'lol') returning id;
Run Code Online (Sandbox Code Playgroud)
我的桌子:
create table oameni
(
id serial primary key,
name varhcar(10)
);
Run Code Online (Sandbox Code Playgroud)
OMG*_*ies 77
您需要在RETURNING中使用INTO子句来设置返回到变量中的值:
DECLARE myid OAMENI.id%TYPE;
INSERT INTO oameni
VALUES
(default,'lol')
RETURNING id INTO myid;
Run Code Online (Sandbox Code Playgroud)
您还需要指定变量的数据类型; 我很高兴看到postgresql支持%TYPE和%ROWTYPE.
Qwe*_*tie 15
除了主要答案之外,值得注意的是,如果您在存储过程之外执行此操作,则必须将代码包装在“DO”块中,如下所示:
DO $$
DECLARE
myid mytable.id%TYPE;
BEGIN
INSERT INTO mytable (...)
VALUES (...)
RETURNING id INTO myid;
END $$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29153 次 |
| 最近记录: |