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