oracle怎么修改一个字段的数据并递增
假如emp表中有个字段number,本来emp表中是有很多行数据的,而number字段全是空值,现在我要向其中添加值,并且从上到下为1,2,3,4,5,6。。。。。。这样...
假如emp表中有个字段number,本来emp表中是有很多行数据的,而number字段全是空值,现在我要向其中添加值,并且从上到下为1,2,3,4,5,6。。。。。。这样排列
展开
展开全部
很简单的一句
update emp set "number"=rownum ;
commit;
number是oracle关键字,所以加了引号,你要是实际表中不叫这个名字,可以不加引号的
更多追问追答
追问
那我要是想在数字前面加些字母呢,比如说:a1,a2,a3........这样排列
追答
首先,你要确保你number字段是字符类型的字段,如果是数字类型肯定不行
然后
update emp set "number"='a'||rownum ;
commit;
展开全部
为表写触发器。
另外创建序列,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;
就可以了。
另外创建序列,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;
就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询