天天看点

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

获取不同数据库新增记录主键值  

数据库  获取新增主键值的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>);