不同数据库获取新增加的主键值
不同数据库获取新增加的主键值
|
数据库 |
获取新增主键的查询语句 |
|
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>); |
浙公网安备 33010602011771号