很多时候在做和数据库相关的操作的时候,主键不能由用户去填写或涉及多个用户同时操作一张表的时候,就需要对主键进行严格的控制,这里主要讲Oracle中如何实现主键的自增长。
主要由三步组成,1)建表;2)建立序列;3)建立触发器(目的是在表插入数据的时候启用序列生成的值),我们通过下面的例子来说明:
1)建立对应的数据库表:
drop table TEST;
create table TEST
(
bsm NUMBER(10) not null,
xh NUMBER(10),
posx NUMBER(15,5),
posy NUMBER(15,5)
);
alter table TEST add constraint PK_TEST primary key (BSM);
2)建立序列
drop sequence TEST_SEQ;
create sequence TEST_SEQ
minvalue 1
maxvalue 999999999999999999
start with 1
increment by 1
cache 20;
注:建立序列,最小值为1,从1开始计数和每次递增量为1;
3)建立触发器
drop trigger test_trig;
CREATE OR REPLACE TRIGGER "test_trig"
BEFORE INSERT ON test
REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
DECLARE
BEGIN
SELECT TEST_SEQ.NEXTVAL INTO :NEW.BSM FROM DUAL;
END test_trig;
通过上述三步就完成了主键自动生成的设定,以后就可以根据业务需求直接插入业务数据就可以了
相关推荐
oracle触发器实现主键自动增长操作
oracle序列主键自增长实现主键自动增长
oracle数据库中主键属性没有自增长,所以只能自己写程序来实现,用序列与触发器,可以解决这个 问题
教你如何使用oracle中的sequence,实现主键自动增长
oracle设置主外键即主键序列自动增长
oracle设置主键自动增长 首先,你要有一张表! 然后,你需要一个自定义的sequence 以上代码完成了一个序列(sequence)的建立过程,名称为emp_sequence,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle...
( 使用powerdesigner创建oracle_数据库表,设置表主键列为自动增长.doc )
oracle 自增长主键.docoracle
oracle创建表时主键自动增长方法 5 测试反复执行如下语句:insert into Test_Increase(Username) values('test')6 查看插入结果:userid username1 test2 test3 test4 test5 test6 test7 test8 test9 test
Oracle数据库创建表tuser设置主键自动增长,先创建表,然后创建基于该表的队列。
在hibernate中实现oracle的自动增长
如何为oracle中的表增加自动增长列.pdf
oracle数据库主键自动生成
oracle 创建id主键序列的 脚本 及 使用方式 oracle 创建id主键序列的 脚本 及 使用方式
oracle中创建自增主键的方法
在sqlserver中,可以用identity实现自动增长值,但在oracle中,没有identity,可以用其它的实现,这里就是用序列实现的自动增长值。
oracle设置主键自增的方法,可以图形化界面也可以用sql语句,两种方法均亲自验证过。
oracle自动增长列。 自动序列化, SEQUENCE。