使用oracle数据库中的关键字sequence来实现目的。
//创建mySeq
create sequence mySeq
start with 1
increment by 2
maxvalue 40
minvalue 1
cycle
//创建用户表
create table USER
(
Id int,
CompName varchar2(20)
)
插入语句可以这样写:
insert into USER values(mySeq.nextVal,'AA')
这样的话每次插入的ID就是自动递增的
扩展资料:
sequence用法:
create sequence <序列名称>
start with <起始数>
increment by <增长量>
[maxvalue 值]
[minvalue 值]
[cycle 当到达最大值的时候,将继续从头开始]
[Nocycle -- 一直累加,不循环]
[Cache ]
参考资料:百度百科-oraclesequence
1、建表,如:表TABLE_A;(LZ应该是建好表了)
2、建sequence,如:SEQ_TABLE_A;
3、插入的Sql写法,如:"insert into TABLE_A(id) values(SEQ_TABLE_A.nextval)"
可以先去了解“sequence”。
表已经建好,我现在是后台控制数据库,那SEQ_TABLE_A;也弄个comm么?我是后台给表插入数据,没有id信息,想让id自动增加,以防止主键出现重复问题
1、不用加新column。
2、是自己练习吗?数据库自己可以管的吧,就加个sequence呗。
方法1:用管理工具,比如PL/SQL,在Sequence,右键,“新增”。
方法2:用Sql建Sequence
-- Create sequence
create sequence SEQ_TABLE_A
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;
3、加了Sequence,就可以用了。
关于用法,
例子1:SELECT SEQ_TABLE_A.NEXTVAL FROM DUAL T
例子2:插入Sql,INSERT INTO TABLE_A (ID) VALUES (SEQ_TABLE_A.NEXTVAL)
其实意思就是,建立了一个序列SEQ_TABLE_A,每次调用SEQ_TABLE_A.NEXTVAL的时候,序列会自动加1。
所以,拿这个SEQ_TABLE_A.NEXTVAL填到ID字段,自然就是“自动生成、顺序递增”。
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOMINVALUE
NOCYCLE
NOCACHE
ORDER;
INSERT INTO TABLE_NAME(ID)
VALUES(SEQ_ID.NEXTVAL);
COMMIT;