oracle 在SQL中制作一列自增列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 在SQL中制作一列自增列相关的知识,希望对你有一定的参考价值。

我的表里没有自增列,但是我需要在查询中显示一列自增列,该怎样做
select ??? from 中间改怎样写??

可以通过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是表示循环,即到最大值后从起始值重新开始。 每次执行都是会自增的。
参考技术A 1 有 rownum啊! 不用白不用
2 可以用rowid 这个可是唯一的值
select rowid,rownum .... from ...本回答被提问者和网友采纳
参考技术B 1、建立一个自增sequences
2、表建了触发器 当插入时调用 select seq.next into 变量 from dual 自增列 存入 变量 就ok了追问

没有列名,只是在查询时用一个临时列名,用来显示自增

追答

这不叫自增列 rownum是oracle的虚列 可以使用 但是不能在程序中按序号取用 比如要num是10的 其实是取不到的 rowid 数据库里存的根本没法在应用中用 得组合其他东西用

参考技术C 思想:
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;

求教在sqlserver2008中的表中怎么添加一列自增的列?

1、例如给某表添加一个Num自增列,这张表已经有很多行数据了,通过sqlserver表设计器,添加一个新字段Num,如图所示,

2、添加字段后,点击保存,会弹出一个小框“不允许保存更改。所做的更改要求删除并重新创建一下表”,这个要求不能满足啊,这么多的数据,删除了怎么办?

3、点击SQL Server Management Studio顶部的菜单【工具】->【选项】,

4、打开【选项】弹窗界面如图所示,默认展开的是【常规】选项,

5、拖动左侧的菜单,找到并点击【表设计器】->【表设计器和数据库设计器】,

6、在右侧出现的【表选项】中,找到并 取消勾选【阻止保存要求重新创建表的更改】,点击【确定】按钮,

7、再次在表设计界面,点击保存,如果表中的数据量很大的话,会有这个验证警告:“将定义更改保存到包含有大量数据的表中可能需要很长时间”,此项可以忽略,

8、直接点击【是】按钮,就可以保存成功了。

参考技术A alter table 表 add 列 int IDENTITY(1,1) NOT NULL
表指的是你要处理的那个表名称;列指你要添加的列名称;以上示例添加了一个数据类型为int型的列,自增序列号从1开始,每行增加量为1.
希望对你有所帮助!
参考技术B

这个很简单,这样操作:Table右键->新建->进入设计视图添加一个新列(例如:ID,int),Is Identity 设置成True, Identity Increment就是自增量,每次增加多少。Identity Seed,就是种子,从多少开始。

以上是关于oracle 在SQL中制作一列自增列的主要内容,如果未能解决你的问题,请参考以下文章

如何修改MySql自增列的值

sql的自增列如何重置

sqlserver2005如何让列自增一,列的字段从L01001开始自增一,前面的L01是不变的

求教在sqlserver2008中的表中怎么添加一列自增的列?

设计表的时候,对于自增列做逻辑主键使用的一点思考

MySQL插入自增列数据的问题