如何实现Oracle数据库Id的自动增加
3个回答
展开全部
序列结合触发器实现自动增加效果。
Oracle:
前提是: create table test(id char(5),name char(10));
(1)建立sequence
create sequence test_id increment by 1 start with 1;
(2)建立触发器
A)执行命令ed test打开窗口,填写以下内容
create or replace trigger test_trigger
before insert
on test
for each row
declare
primary_key_value char(5);
begin
select test_id.nextval into primary_key_value from dual;
:new.id:=primary_key_value ;
end;
B)保存后,执行get test
C)然后执行/
如果/执行有错误的话,可以通过show error来显示错误并修改。
(3)
SQL> insert into test(name) values('one');
已创建 1 行。
SQL> select * from test;
ID NAME
----- ----------
1 one
Oracle:
前提是: create table test(id char(5),name char(10));
(1)建立sequence
create sequence test_id increment by 1 start with 1;
(2)建立触发器
A)执行命令ed test打开窗口,填写以下内容
create or replace trigger test_trigger
before insert
on test
for each row
declare
primary_key_value char(5);
begin
select test_id.nextval into primary_key_value from dual;
:new.id:=primary_key_value ;
end;
B)保存后,执行get test
C)然后执行/
如果/执行有错误的话,可以通过show error来显示错误并修改。
(3)
SQL> insert into test(name) values('one');
已创建 1 行。
SQL> select * from test;
ID NAME
----- ----------
1 one
展开全部
oracle 中不能设置自动增加,这个和其他数据库不一样,但是有 序列,这个是Oracle自己特有的东西,
首先创建序列:
create sequence seq;
这就创建好了,然后 seq.nextval 就会返回一个值,不会重复的值,
insert into tablename values(seq.nextval,'001','javabook');
insert into tablename values(seq.nextval,'001','javabook');
insert into tablename values(seq.nextval,'001','javabook');
这样前3个id 分别是 1,2,3
首先创建序列:
create sequence seq;
这就创建好了,然后 seq.nextval 就会返回一个值,不会重复的值,
insert into tablename values(seq.nextval,'001','javabook');
insert into tablename values(seq.nextval,'001','javabook');
insert into tablename values(seq.nextval,'001','javabook');
这样前3个id 分别是 1,2,3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-09-18
展开全部
建Sequence 序列 Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY := next_id; end; 这样你在插入数据时,不用指定你要自增的列的值 ..
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询