oracle 在SQL中制作一列自增列
我的表里没有自增列,但是我需要在查询中显示一列自增列,该怎样做select???from中间改怎样写??...
我的表里没有自增列,但是我需要在查询中显示一列自增列,该怎样做
select ??? from 中间改怎样写?? 展开
select ??? from 中间改怎样写?? 展开
4个回答
展开全部
可以通过sequence来实现,每次递增一即可。
create sequence SEQ_ID
minvalue 1
maxvalue 99999999
start with 1
increment by 1
cache 30
cycle;
之后执行:
insert into tab (auto_id) values (SEQ_ID.Nextval);
备注:sequence 是一个自增长的序列,每次调用nextval的时候会自动增加,可以定义起始值,最大值,增量,cycle是表示循环,即到最大值后从起始值重新开始。 每次执行都是会自增的。
create sequence SEQ_ID
minvalue 1
maxvalue 99999999
start with 1
increment by 1
cache 30
cycle;
之后执行:
insert into tab (auto_id) values (SEQ_ID.Nextval);
备注:sequence 是一个自增长的序列,每次调用nextval的时候会自动增加,可以定义起始值,最大值,增量,cycle是表示循环,即到最大值后从起始值重新开始。 每次执行都是会自增的。
展开全部
1 有 rownum啊! 不用白不用
2 可以用rowid 这个可是唯一的值
select rowid,rownum .... from ...
2 可以用rowid 这个可是唯一的值
select rowid,rownum .... from ...
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、建立一个自增sequences
2、表建了触发器 当插入时调用 select seq.next into 变量 from dual 自增列 存入 变量 就ok了
2、表建了触发器 当插入时调用 select seq.next into 变量 from dual 自增列 存入 变量 就ok了
追问
没有列名,只是在查询时用一个临时列名,用来显示自增
追答
这不叫自增列 rownum是oracle的虚列 可以使用 但是不能在程序中按序号取用 比如要num是10的 其实是取不到的 rowid 数据库里存的根本没法在应用中用 得组合其他东西用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
思想:
1 创建序列
2 select 序列名.nextval from XXX; 可以在from前面加上其他的列名
创建序列方法
create sequence tmp_seq
maxvalue 10000
minvalue 1
start with 1
increment by 1
cache 10
order;
显示自增列
select tmp_seq.nextval from XXX;
1 创建序列
2 select 序列名.nextval from XXX; 可以在from前面加上其他的列名
创建序列方法
create sequence tmp_seq
maxvalue 10000
minvalue 1
start with 1
increment by 1
cache 10
order;
显示自增列
select tmp_seq.nextval from XXX;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询