标题:初学 oracle 遇到问题 , 添加自动增长主键
只看楼主
鸿硕
Rank: 5Rank: 5
来 自:北京海淀
等 级:职业侠客
帖 子:211
专家分:309
注 册:2009-10-11
结帖率:85.71%
已结贴  问题点数:8 回复次数:3 
初学 oracle 遇到问题 , 添加自动增长主键
现在有一张表。在创建的时候 ,忘记创建主键 了,现在想加上,
  并实现 自动增长的那样的效果。 我该 怎样写  sql 语句才能实现 !
搜索更多相关主题的帖子: oracle 
2011-06-29 15:34
红旗轿车
Rank: 1
等 级:新手上路
帖 子:1
专家分:8
注 册:2011-7-4
得分:8 
刚刚注册上,回答一下这个问题。
-- 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');
2011-07-04 12:46
鸿硕
Rank: 5Rank: 5
来 自:北京海淀
等 级:职业侠客
帖 子:211
专家分:309
注 册:2009-10-11
得分:0 
回复 2楼 红旗轿车
那  我只能 把  积分 给你了 ,帮你顶顶人气 ····

点滴产生差距
时间创造奇迹
2011-07-05 17:32
鸿硕
Rank: 5Rank: 5
来 自:北京海淀
等 级:职业侠客
帖 子:211
专家分:309
注 册:2009-10-11
得分:0 
回复 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 编辑 ]

点滴产生差距
时间创造奇迹
2011-07-05 17:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-344329-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.957445 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved