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