DB2 如何主键自增

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DB2 如何主键自增相关的知识,希望对你有一定的参考价值。

简单啊,用序列!不过序列不会自动填充,那么写个触发器,让插入数据的时候,想要自增的主键去获取序列并填充。

自增列不好用,高并发容易出问题。
参考技术A 两个方案
1)sequence自增;
2)自增列
参考技术B 建议建SEQUENCE

SQL 一个表只有一个自增的主键字段,如何插入

如题

参考技术A 显示值插入(修改会话中的IDENTITY_INSERT ),临时性 ,不彻底该表列性质
SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table ON | OFF

显式值插入
  
1 --一般是组合使用,已确保会话中IDENTITY_INSERT的完整状态
2 SET IDENTITY_INSERT TABLENAME ON --关闭
3 INSERT INTO TABLENAME(IDENTYTY_ID,...) VALUES(...)
4 INSERT INTO TABLENAME(IDENTYTY_ID,...) VALUES(...)
5 INSERT INTO TABLENAME(IDENTYTY_ID,...) VALUES(...)
6 SET IDENTITY_INSERT test OFF --开启

关于这种方式,需要注意如下:
A.任何时候,一个会话中只有一个表的 IDENTITY_INSERT 属性可以设置为 ON ,想修改其他表,必须将前一个ON状态改回OFF
B.如果插入值大于表的当前标识值,则 SQL Server 自动将新插入值作为当前标识值使用
C.SET IDENTITY_INSERT 的设置是在执行或运行时设置的追问

已经找到答案了,哪里需要那么复杂
INSERT INTO TABLENAME default VALUES

本回答被提问者采纳
参考技术B INSERT INTO 表名 VALUES();

以上是关于DB2 如何主键自增的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中如何保证线程安全以及主键自增有序

SQL Server 2000中如何设置自增主键?

mybatis怎么设置主键自增

mysql的设置主键自增的问题

MySQL手动插入数据时怎么让主键自增!

SQL 一个表只有一个自增的主键字段,如何插入