本文转自 leizhimin 51CTO博客,原文链接:xxxxxx,如需转载请自行联系原作者获取不同数据库新增记录主键值
| 数据库 | 获取新增主键值的SQL语句 |
| DB2 | INENTIY_VAL_LOCAL() |
| Informix | SELECT dbinfo('sqlca.sqlerrd1') FROM <Table> |
| Sybase | SELECT @@IDENTITY |
| SQL Server | SELECT SCOPE_IDENTITY()或SELECT @@IDENTITY |
| MySQL | SELECT LAST_INSERT_ID() |
| HsqlDB | CALL IDENTITY() |
| Cloudscape | IDENTITY_VAL_LOCAL() |
| Derby | IDENTITY_VAL_LOCAL() |
| PostgreSQL | SELECT nextval('<Table>_SEQ') |
如果数据库的并发量很高,那么费Sequence方式通过上面获取的最后插入记录的主键值是不安全的。
对于支持SEQUECE的数据库,就不存在这样的问题了。
| 数据库 | SEQUECE值的获取方法 |
| Oracle | select <SEQUENCE_NAME>.nextval from dual; |
| DB2 | values nextval for <SEQUENCE_NAME>; |
| PostgreSQL | select nextval(<SEQUENCE_NAME>); |
本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/86857,如需转载请自行联系原作者