Oracle数据库中没有自增字段,我们可以通过创建序列和触发器的方式,间接地实现自增的效果。
举个实例:
1.创建表TEST
create table TEST(
id number(10) primary key, /*主键,自动增加*/
name varchar2(20), /*姓名*/
phone varchar2(20), /*电话*/
sex varchar2(10), /*性别*/
age number(10) /*年龄*/
);
2.创建自增长序列
create sequence TEST_SEQ
minvalue 1 -- 最小值
-- maxvalue 2000 -- 最大值
nomaxvalue -- 不设置最大值
start with 1 -- 从1开始计数
increment by 1 -- 每次增加1
nocycle -- 一直累加,不循环
cache 20;
注意:根据实际情况 选择配置项。比如:表单中存在一部分原始数据,在创建自增长序列时,可以设置计数起始位置。例如表中存在100条原始数据,那么我们可以设置 start with 101 ,这样自增长就会从101开始。
3.创建触发器
create or replace trigger TEST_TR
before insert on TEST
for each row
begin
select TEST_SEQ.nextval into :new.id from dual;
end TEST_TR;
new.id中的id为自增的字段。 根据你自己的表字段自行设置。
4.测试
insert into TEST(name,phone,sex,age) values('张三','18888888888','男',25)
insert into TEST(name,phone,sex,age) values('李四','18888888889','男',29)
结果:
到这,就可以实现oracle主键自增了。
希望这篇文章对您的工作有所帮助。
LAST 一切美好的遇见都是命中注定~!!!