今天开发问到,postgres里面有没有像mysql那样插入一个值后返回插入的值,这个是有的,而且有更强的扩展性。

示例:

[postgres@localhost ~]$ psql

psql (9.2.4)

Type "help" for help.

postgres=# create table t_kenyon(id int,vname varchar(30),remark text);

CREATE TABLE

postgres=# insert into t_kenyon(id,vname) values(1,'test_kenyon') returning id;

id

----

1

(1 row)

INSERT 0 1

postgres=# insert into t_kenyon(id,vname) select generate_series(1,5),'Kenyon here' returning id;

id

----

1

2

3

4

5

(5 rows)

INSERT 0 5

扩展:

a.返回更多的insert内容

postgres=# insert into t_kenyon(id,vname) select generate_series(6,8),'Kenyon here' returning id,vname;

id | vname

----+-------------

6 | Kenyon here

7 | Kenyon here

8 | Kenyon here

(3 rows)

INSERT 0 3

postgres=# insert into t_kenyon(id,vname,remark) select generate_series(9,11),'Kenyon here','KENYON GOOD BOY!' returning *;

id | vname | remark

----+-------------+------------------

9 | Kenyon here | KENYON GOOD BOY!

10 | Kenyon here | KENYON GOOD BOY!

11 | Kenyon here | KENYON GOOD BOY!

(3 rows)

INSERT 0 3 b.返回delete掉的数据

postgres=# select * from t_kenyon;

id | vname | remark

----+-------------+------------------

1 | test_kenyon |

1 | Kenyon here |

2 | Kenyon here |

3 | Kenyon here |

4 | Kenyon here |

5 | Kenyon here |

6 | Kenyon here |

7 | Kenyon here |

8 | Kenyon here |

9 | Kenyon here | KENYON GOOD BOY!

10 | Kenyon here | KENYON GOOD BOY!

11 | Kenyon here | KENYON GOOD BOY!

(12 rows)

postgres=# delete from t_kenyon where id >9 returning id,vname;

id | vname

----+-------------

10 | Kenyon here

11 | Kenyon here

(2 rows)

DELETE 2

postgres=# delete from t_kenyon where id <5 returning *;

id | vname | remark

----+-------------+--------

1 | test_kenyon |

1 | Kenyon here |

2 | Kenyon here |

3 | Kenyon here |

4 | Kenyon here |

(5 rows)

DELETE 5

postgres=# select * from t_kenyon;

id | vname | remark

----+-------------+------------------

5 | Kenyon here |

6 | Kenyon here |

7 | Kenyon here |

8 | Kenyon here |

9 | Kenyon here | KENYON GOOD BOY!

(5 rows) c.返回update掉的数据

postgres=# update t_kenyon set remark = 'kenyon bad boy!' where id <7 returning id,remark;

id | remark

----+-----------------

5 | kenyon bad boy!

6 | kenyon bad boy!

(2 rows)

UPDATE 2 mysql的last_insert_id使用有诸多限制和注意的地方,如字段需要auto_increment,一个SQL插入多个值的时候只会返回第一个id值,此不再叙述。

mysql returning_Postgres用returning实现mysql的last_insert_id相关推荐

  1. mysql returning into_RDS MySQL 8.0 Returning-阿里云开发者社区

    背景 MySQL 对于 statement 执行结果报文通常分为两类 Resultset 和 OK/ERR,针对 DML 语句则返回OK/ERR 报文,其中包括几个影响记录,扫描记录等属性.但在很多业 ...

  2. php mysql pdo use_PHP连接到mysql的方法--mysqli和PDO

    php连接到mysql数据库,经典的方式就是使用mysql_connect(),具体代码如下: mysql_connect($db_host, $db_user, $db_pass) or die(m ...

  3. 【转】MYSQL入门学习之七:MYSQL常用函数

    转载地址:http://www.2cto.com/database/201212/175864.html 一.数学函数  www.2cto.com   ABS(x)                   ...

  4. mysql oracle round,Oracle和MySQL的函数对比和常用区别

    编号类别ORACLEMYSQL注释1数字函数round(1.23456,4)round(1.23456,4)一样: ORACLE:select round(1.23456,4) value from ...

  5. mysql重复记录大于十的数据库_MySQL专题10之MySQL序列使用、MySQL处理重复数据、MySQL以及SQL的注入...

    1.MySQL序列使用 -  MySQL序列是一组整数:1,2,3...,由于一张数据表只能有一个字段自增主键,如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. -  使用AUTO ...

  6. mysql关于时间的面试题,mysql时间设置默认值MySQL常见面试题

    1.limit(选出10 到20 条) select * from students order by id limit 9,10; 2.MySQL 会使用索引的操作符号 =,>,=,betwe ...

  7. liunx上mysql源码安装mysql,搞定linux上MySQL编程(一):linux上源码安装MySQL

    [版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] 1. 首先下载源码包: ftp://ftp.jaist.ac.jp/pub/m ...

  8. .net连接mysql数据_.net连接MYSQL数据库的方法及示例!

    连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL 该组件为MYSQL为ADO.NET ...

  9. 加速mysql导入时间_加快mysql导入导出速度

    MySQL导出的SQL语句在处理百万级数据的时候,可能导入要花几小时.在导出时合理使用几个参数,可以大大加快导入的速度. -e 使用包括几个VALUES列表的多行INSERT语法; --max_all ...

最新文章

  1. SCALA当的trait
  2. Visual Studio 2010 第一时间体验旗舰版
  3. SQLServer 查看耗时较多的SQL语句
  4. 矩阵乘法如何去逆矩阵_矩阵乘法和求逆
  5. python_9(模块补充)
  6. C ++ Singleton设计模式
  7. 微信小程序----相对路径图片不显示
  8. Kdb+和Q语言使用-银行系统
  9. 【图像去噪】基于matlab GUI中值+均值+维纳+小波滤波图像去噪【含Matlab源码 800期】
  10. axure元件库 文件上传_一库:便捷的前后台元件库
  11. 专业的笔记本测试软件,专业软件性能测试
  12. java 正则 连续换行_Java正则表达式匹配回车换行多行
  13. win2008 SP2下USB鼠标不能使用的一个解决方案
  14. 身份证实名认证API接口介绍
  15. docker-compose开机自启动设置
  16. android 特殊符号
  17. 《Understanding and Diagnosing Visual Tracking Systems》论文笔记
  18. 腾讯区块链的三年与它的打法 |链捕手
  19. vue-生成二维码【生成、点击输入框内叉号移除生成的二维码、输入框聚焦】
  20. Python单元测试详解

热门文章

  1. 如何显示隐藏的文件、文件夹或者驱动器
  2. 报学硕还是专硕?上岸学硕后,我后悔了
  3. 基于科大讯飞的语音识别 windows平台开发
  4. oneinstack重装mysql_OneinStack 安装
  5. python 创建文件夹_Python写的创建文件夹自定义函数mkdir()
  6. 中南财经政法大学大学21年计算机考研情况 专硕进复试平均分343.4分
  7. 如何在lambda表达式域中使用局部变量?
  8. 海南省已开具区块链财政电子票据1919万张,涉及金额312亿元
  9. python 错误:KeyError
  10. 高德地图 Vue 中 加载 数据可视化 Loca 的方式