注册 登录
编程论坛 Oracle论坛

初学 oracle 遇到问题 , 添加自动增长主键

鸿硕 发布于 2011-06-29 15:34, 977 次点击
现在有一张表。在创建的时候 ,忘记创建主键 了,现在想加上,
  并实现 自动增长的那样的效果。 我该 怎样写  sql 语句才能实现 !
3 回复
#2
红旗轿车2011-07-04 12:46
刚刚注册上,回答一下这个问题。
-- table:AAA ;欲设主键列:c1
create table AAA(
    c1 integer,
    c2 varchar2(20),
    c3 varchar2(2)
);

--主键
alter table AAA
add constraint PK_AAA primary key (c1);
--------------------------------------------
-- 创建自增长序列号
create sequence my_seq
minvalue 1 --最小值

--最大值的具体值可设可不设,任选一句
maxvalue 9999999999 --最大值
/*nomaxvalue*/ -- 不设置最大值

start with 1 --从1开始
increment by 1 --每次增长1
nocycle -- 一直累加,不循环

-- 缓存,任选一句
/*nocache*/ --不使用缓存
cache 20;--缓存20个,用完再取
--------------------------------------------
--创建触发器
create or replace trigger tr_aaa_seq
  before insert on AAA
  for each row
begin
  select my_seq.nextval into :new.c1 from dual;
end;
-------------------------------------------
--测试
insert into aaa(c2,c3) values ('02','03');
#3
鸿硕2011-07-05 17:32
回复 2楼 红旗轿车
那  我只能 把  积分 给你了 ,帮你顶顶人气 ····
#4
鸿硕2011-07-05 17:38
回复 2楼 红旗轿车
--创建触发器
create or replace trigger tr_aaa_seq
  before insert on AAA
  for each row
begin
  select my_seq.nextval into :new.c1 from dual;
end;



创建的时候   提示  
只有本站会员才能查看附件,请 登录


这样的 问题  咋搞 ?  我可是 把 积分 给你 了  , 你要帮助到底呀 ····

[ 本帖最后由 鸿硕 于 2011-7-5 17:39 编辑 ]
1