如何实现Oracle数据库Id的自动增加

 我来答
前端报错
2011-06-04 · 前端开发技术分享,分析
前端报错
采纳数:1573 获赞数:7026

向TA提问 私信TA
展开全部
序列结合触发器实现自动增加效果。

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
qjw963
推荐于2017-09-04 · TA获得超过2595个赞
知道大有可为答主
回答量:2097
采纳率:60%
帮助的人:1139万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-09-18
展开全部
建Sequence 序列 Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY := next_id; end; 这样你在插入数据时,不用指定你要自增的列的值 ..
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式