PostgreSQL 使用RETURNING返回值

用法:
  在INSERT INTO或者UPDATE的时候在最后面加上RETURNING colname,PostgreSQL会在插入或者更新数据之后会返回你指定的字段。

postgres=# \d tb3
                              Table "public.tb3"
 Column |       Type        |                    Modifiers                     
--------+-------------------+----------------------------------------------
 id     | integer           | not null default nextval('tb3_id_seq'::regclass)
 name   | character varying |

**INSERT INTO:** 
postgres=# insert into tb3(name) values('aa')returning name;
 name 
------
 aa
(1 row)

INSERT 0 1
postgres=# insert into tb3(name) values('aa')returning id;
 id 
----
  2
(1 row)

INSERT 0 1
postgres=# insert into tb3(name) values('aa')returning id,name;
 id | name 
----+------
  3 | aa
(1 row)

INSERT 0 1

**UPDATE: (返回更新之后的值)**
postgres=# update tb3 tb3 set name='bb' where id=1 returning name; 
 name 
------
 bb
(1 row)

UPDATE 1

**RETURNING在FUNCTION中的应用(RETURNING... INTO...)**
postgres=# do language plpgsql $$
postgres$# declare
postgres$# 		n character varying;
postgres$# begin
postgres$# 		update tb3 set name='ss' where id=3 returning name into n;
postgres$# 		raise notice 'n is %',n;
postgres$# 		insert into tb3(name) values(n);
postgres$# end;
postgres$# $$;
NOTICE:  n is ss
DO
postgres=# select * from tb3;
 id | name 
----+------
  2 | aa
  1 | bb
  3 | ss
  4 | ss
(4 rows)

postgres=# 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值