oracle怎么修改一个字段的数据并递增

假如emp表中有个字段number,本来emp表中是有很多行数据的,而number字段全是空值,现在我要向其中添加值,并且从上到下为1,2,3,4,5,6。。。。。。这样... 假如emp表中有个字段number,本来emp表中是有很多行数据的,而number字段全是空值,现在我要向其中添加值,并且从上到下为1,2,3,4,5,6。。。。。。这样排列 展开
 我来答
badkano
2013-11-13 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885374
团长

向TA提问 私信TA
展开全部

很简单的一句

update emp set "number"=rownum ;
commit;

number是oracle关键字,所以加了引号,你要是实际表中不叫这个名字,可以不加引号的

更多追问追答
追问
那我要是想在数字前面加些字母呢,比如说:a1,a2,a3........这样排列
追答

首先,你要确保你number字段是字符类型的字段,如果是数字类型肯定不行

然后

update emp set "number"='a'||rownum ;
commit;
qt87v5
2013-11-13 · TA获得超过335个赞
知道小有建树答主
回答量:201
采纳率:0%
帮助的人:207万
展开全部
为表写触发器。

另外创建序列,Create Sequence Start With 1 increment by 1 no cycle

Create Sequence MySequence Start With 1 Increment By 1 Nocycle Nocache;

说明:序列MySequence从1开始递增,每次加1,一直累加不循环。若把Nocache改为Cache,那么Oralce会在内存中预先放置一些Sequence以使存取速度更快。Cache取完后,Oracle会自动再取一组到Cache 。然而使用Cache可能会跳号,若遇到数据库突发异常,Cache里的Sequence会丢失。

然后创建触发器:

Create Or Replace Trigger MyTrigger Before Insert On TableName referencing old as old new as new

for each row

begin

Select MySequence.NextVal To :new.ID From DUAL;

end;
如果你只是要修改现有的数据

update emp set 字段=rownum ;

commit;
就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式