oracle中实现自动增长列
oracle中实现自动增长列不能够像SqlServer中在表中直接加标示,而是要借助序列来实现。下面简单介绍一下,oracle中实现自动增长列的一个方法
步骤:
1创建一个序列来实现自动增长。
createsequenceuser_sequence1
startwith1----初值
incrementby1--增量
nomaxvalue--没有最大值
nocycle--不能循环
nocache--不缓存
注意:序列创建完成时不能加;结束
2创建一个表
createtablestudent(
idnumbert,
namevarchar2(10)
)
3测试
insertintostudentvalues(user_sequence1.nextval,'aaa');
select*fromstudent;
这样能够实现自动增长列的添加,但是我们现在一般都是数据库和程序分离所以我们最好能够在数据库中把自动增长写好而程序中只需要加值不需要知道你是创建的那个序列。
步骤:
1和上面的第一个一样省略
2和上面的一样省略
3创建一个触发器
createorreplacetriggeruser_trigger1
beforeinsertonstudent
foreachrow
declare
tempnumnumber;
begin
selectuser_sequence1.nextvalintotempnumfromdual;
:new.id:=tempnum;
end;
4测试
insertintostudentvalues(5,'aaa');
select*fromstudent;
说明:这里还是需要给一个number类型的值,但是无论给什么值它都是按照序列的值填充的。所有我们可以在设计数据库的时候给数据库默认值然后我们添加的时候直接给default即可。