1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > mysql returning_Postgres用returning实现mysql的last_insert_id

mysql returning_Postgres用returning实现mysql的last_insert_id

时间:2024-03-28 18:53:31

相关推荐

mysql returning_Postgres用returning实现mysql的last_insert_id

今天开发问到,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值,此不再叙述。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。