在Oracle中创建自增列

最近一直都在研究Oracle,感觉挺顺手的。直到今天研究Hibernate时建了一张表,想要将第一列设为自增列时才发现在Oracle中不能像MySql,SQL Server 2005 那样可以直接设置自增列,囧~~~
好吧,尽然不能直接设置也没有关系。遇神杀神,遇佛斩佛,经过“艰苦”的研究,终于将这个问题解决了,不由得感慨我又学到了这么多东西,呵呵,写下来,留给自己日后使用。
我的思路是先建一个序列,然后利用触发器可以实现这个效果,这样就把Oracle中两个相当重要的知识点综合起来了,下面代码的方式实现这个想要的结果。
首先建一张表News,其中有id,title,content这3个字段,其中主键是id
CREATE TABLE NEWS(
ID NUMBER(2) PRIMARY KEY,
TITLE VARCHAR2(20),
CONTENT VARCHAR2(50)
)
这样一张表就这么完成了,下面来建一个序列,美其名日“SEQ1”
CREATE SEQUENCE SEQ1
INCREMENT BY 1 //设置每次增加一个
START WITH 1 //设置从1开始计数
NOMAXVALUE //设置没有最大数
NOCYCLE //设置为一直累加不循环
CACHE 10 //
好了,世界上又多了一个序列,别急,还要创建触发器呢,说起触发器,之前一直都不懂,直到今天研究时突然就懂了,可郁闷,为什么以前一直都不懂呢,哎。。。
创建一个名为tri1的触发器,代码如下:
CREATE TRIGGER TRI1
BEFORE
INSERT _disibledevent=>
,转载请说明出处,谢谢合作,
在Oracle中创建自增列
Tags: 

延伸阅读

最新评论

发表评论