在pl/sql developer里的主键自动生成方式为什么不可以设置成自增长。

 我来答
babyat
推荐于2017-11-28 · 超过26用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:63.1万
展开全部
oracle不能实现字段数值的自增长。可以通过序列和触发器来实现一行数据在insert前实现某字段的自增。

首先随便建立一个表,menuId是需要自增的字段
create table menu( menuId number(10) not null primary key,
name varchar2(40) not null,
id_parent number(10) not null,
url varchar2(300) null);
然后建立一个序列,最小值是minvalue,从1开始,步进为1递增,无循环,无缓存。
关于create sequence的详细用法。
create sequence menu_autoinc_seq
minvalue 1
start with 1
increment by 1
nocycle
nocache;
然后建立一个触发器,在插入tun_menu表之前触发,选取序列的nextval作为新值。
关于create trigger的详细用法。
create or replace trigger menu_autoinc_tg
before insert on menu for each row
begin
select menu_autoinc_seq.nextval into :new.id from dual;
end menu_autoinc_tg;

然后测试一下: insert into menu values('','个人事务',0,'indi.php');
insert into menu values('','公共事务',0,'public.php');
insert into menu values('','信息维护',0,'maintain.php');
insert into menu values('','后台管理',0,'manage.php');
追问
你是不是也是用pl/sql developer的啊。我是想问一下,在pl/sql developer里新建表的时候除了放置属性之外,旁边有一个键选项,那里是设置主键了,还可以设置他的权限,然后并没有设置的他的自增长。只知道主键是不允许重复的。对于键的那一块是主键是怎么来着?序列和触发器真的可以实现自增吗?
追答
那个键就是主键,没有自增长功能。
oracle只有通过触发器才能实现自增长,这个跟用什么工具建表没有关系的。
kivan_lao6f
2011-09-07 · TA获得超过378个赞
知道小有建树答主
回答量:325
采纳率:0%
帮助的人:275万
展开全部
pl/sql 是针对 oracle 数据库使用的一个管理软件吧
oracle 数据库是没有自增长 这个设置的 但是可以用其他方法替换
加个序列号 , 在加个触发器 ,当你的表里面没增加一个数据 就向该数据的ID 加入一个序列号下的数
更多追问追答
追问
pl/sql 是针对 oracle 数据库使用的一个管理软件吧 这问题是你问我,还是你本来就不知道的。
追答
我的意思是  pl/sql 是针对 oracle 数据库使用的一个管理软件
既然oracle 数据库是没有自增长 这个设置的
那么在pl/sql 里面设置当然也是不行的
但是还有其它解决方法:加个序列号 , 在加个触发器 ,当你的表里面没增加一个数据 就向该数据的ID 加入一个序列号下的数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友aabb158d1
2011-09-07 · TA获得超过168个赞
知道答主
回答量:157
采纳率:50%
帮助的人:82.6万
展开全部
oracle没有自增设置,可以使用sequence+触发器来实现
追问
sequence是什么东西啊。你在哪里上班啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rjcb99
2011-09-07 · 超过15用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:41.2万
展开全部
你,对于oracle 和 pl/sql developer 还是一知半解。叫我怎么解答列,郁闷。
更多追问追答
追问
pl/sql developer 是oracle数据存储程序单元的一个ide.你也是用pl/sql developer的是吧。
追答
pl/sql developer 是 oracle数据库的一个方便的开发工具。曾经用过。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式