不同数据库获取新增加的主键值

不同数据库获取新增加的主键值

数据库
获取新增主键的查询语句
DB2
IDENTITY_VAL_LOCAL()
Informix
SELECT dbinfo('sqlca.sqlerrd1') FROM <TABLE>
Sybase
SELECT @@IDENTITY
SqlServer
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>);

posted @ 2011-04-02 19:30  gisdream  阅读(472)  评论(0编辑  收藏  举报