十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
使用oracle数据库中的关键字sequence来实现目的。
成都创新互联主要从事成都网站建设、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务庆城,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
//创建mySeq
create sequence mySeq
start with 1
increment by 2
maxvalue 40
minvalue 1
cycle
//创建用户表
create table USER
(
Id int,
CompName varchar2(20)
)
插入语句可以这样写:
insert into USER values(mySeq.nextVal,'AA')
这样的话每次插入的ID就是自动递增的
扩展资料:
sequence用法:
create sequence 序列名称
start with 起始数
increment by 增长量
[maxvalue 值]
[minvalue 值]
[cycle 当到达最大值的时候,将继续从头开始]
[Nocycle -- 一直累加,不循环]
[Cache ]
参考资料:百度百科-oraclesequence
如何在MySQLOracle下创建自动递增字段
在MySQL下创建自动递增字段
create table article //先创建一个表
(
id int primary key auto_increment //设置该字段为自动递增字段
title varchar( )
);
insert into article values (null a ); //向数据库中插入数据
select * from article; 结果如下
Id
Title
a
insert into article values (null b );
insert into article values (null c );
insert into article (title) values ( d );
select * from article; 结果如下
Id
Title
a
b
c
d
但是oracle没有这样的功能 但是通过触发器(trigger)和序列(sequence)可以实现
假设关键字段为id 建一个序列 代码为
create sequence seq_test_ids minvalue maxvalue start with increment by nocache order ;! [if !supportLineBreakNewLine] ! [endif]
建解发器代码为
lishixinzhi/Article/program/Oracle/201311/18903
以前用的mysql,是有自动递增这个属性的,现在用的orlace,需要建序列来实现递增,这里记录一下:
一、先建一张表(PROJECT_LOGS)
二、表建好了,我们来建一下序列,我用的是sqldeveloper界面来建:
其实到了这里就实现了递增,只是写sql时要传入id(SEQ_PROJECT_LOGS.Nextval);
三、创建触发器:
oracle sql developer建表的时候id字段的自动递增的设置方法和步骤如下:
1、首先,打开sql
server数据库,创建一个新表,然后在表中创建id字段并选择int类型,如下图所示,然后进入下一步。
2、其次,完成上述步骤后,选择id字段,然后在下面的列属性中找到标识规范,如下图所示,然后进入下一步。
3、接着,完成上述步骤后,单击标识规范,可以看到默认值为“否”,这表示不递增,如下图所示,然后进入下一步。
4、然后,完成上述步骤后,将标识规范调整为“是”,将“标识增量”设置为1,然后单击保存按钮,如下图所示,然后进入下一步。
5、最后,完成上述步骤后,添加数据时ID将自动递增,如下图所示。这样,问题就解决了。
关于主键:在建表时指定primary key字句即可:
create table test(
id number(6) primary key,
name varchar2(30)
);
如果是对于已经建好的表,想增加主键约束,则类似语法:
alter table test add constraint pk_id primary key(id);
其中add constraint 和 primary key是关键字,pk_id是主键名称,自定义的额,只要不重复即可。
也可以自动一些,对表的插入操作,建立一个触发器,每当有数据插入时,触发器自动修改id值为序列的新值,这样就完全实现自增id功能了。不过其实也没有这个必要。因为触发器如果建多了,有时会比较混乱,不易管理。
可以通过设置序列(sequence)的形式实现:\x0d\x0a第一步:创建sequence,让 INCREMENT BY增长速度为1,START WITH(开始值为 1)。创建sequence语句如下:\x0d\x0aCREATE SEQUENCE SEQ_NO\x0d\x0a MINVALUE 1 --最小值\x0d\x0a NOMAXvalue -----没有最大值\x0d\x0a INCREMENT BY 1 ----每次递增1\x0d\x0a START WITH 1 -----开始值为1\x0d\x0a NOCACHE ----------不缓存\x0d\x0a NOCYCLE ; ---------不循环\x0d\x0a第二步:每次插入的时候直接\x0d\x0a”insert into tablename(ID) values(SEQ_NO.nextVal)“即可。