7.4. returning

例 7.3. PostgreSQL insert returning

test=# create table account(id serial,name varchar,pass varchar);
NOTICE:  CREATE TABLE will create implicit sequence "account_id_seq" for serial column "account.id"
CREATE TABLE
test=# insert into account(name,pass) values('neo','chen') returning id;
 id
----
  1
(1 row)

INSERT 0 1
			

returning p1,p2...

test=# insert into account(name,pass) values('jam','123'),('john','456') returning id, name;
 id | name
----+------
  2 | jam
  3 | john
(2 rows)

INSERT 0 2
			

returning *

test=# insert into account(name,pass) values('sam',md5('123')),('ivan',md5('456')),('lily',md5('789')) returning *;
 id | name |               pass
----+------+----------------------------------
  4 | sam  | 202cb962ac59075b964b07152d234b70
  5 | ivan | 250cf8b51c773f3f8dc8b4be867a9a02
  6 | lily | 68053af2923e00204c3ca7c6a3150cf7
(3 rows)

INSERT 0 3
			


例 7.4. PostgreSQL update returning

test=# update account set pass = md5(pass) where id=3 returning id,pass;
 id |               pass
----+----------------------------------
  3 | 250cf8b51c773f3f8dc8b4be867a9a02
(1 row)

UPDATE 1
			
			
test=# update account set pass = md5(pass) where id < 3 returning *;
 id | name |               pass
----+------+----------------------------------
  1 | neo  | a1a8887793acfc199182a649e905daab
  2 | jam  | 202cb962ac59075b964b07152d234b70
(2 rows)

UPDATE 2
			
			


例 7.5. PostgreSQL delete returning

test=# delete from account where id=6 returning id,name;
 id | name
----+------
  6 | lily
(1 row)

DELETE 1
			
			
test=# delete from account where id<6 returning *;
 id | name |               pass
----+------+----------------------------------
  4 | sam  | 202cb962ac59075b964b07152d234b70
  5 | ivan | 250cf8b51c773f3f8dc8b4be867a9a02
  3 | john | 250cf8b51c773f3f8dc8b4be867a9a02
  1 | neo  | a1a8887793acfc199182a649e905daab
  2 | jam  | 202cb962ac59075b964b07152d234b70
(5 rows)

DELETE 5
	





原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值