度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 955|回复: 7
打印 上一主题 下一主题

[分享] ORACLE字段自增

[复制链接]

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
跳转到指定楼层
楼主
发表于 2020-4-7 14:06:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一步:创建一个表。

create table Test_Table
(
ID number(11) primary key,
Name varchar(50) not null,
Value1 varchar(50) not null
)


第二步:创建一个自增序列以此提供调用函数。
create sequence AutoID
start with 1 //根据需要自己可修改该数值
increment by 1 //步长值
minvalue 1
nomaxvalue

其实到此步骤,已经可以实现字段自增了。新增记录时看如下代码:

Insert into Test_Table(ID,Name,Value1)values(AutoID.nextval,'xiyang','blog')

第三步:我们通过创建一个触发器,使调用的方式更加简单。
create trigger AutoID_Trigger

before insert on Test_Table for each row
begin
select AutoID.nextval into :new.ID from dual;
end AutoID_Trigger;

该触发器在数据库注册了表格的侦听,即当指定表Test_Table插入记录之前,我们调用一个序列方法的nextval获得新值,插入自增字段。
在触发器中,我们调用了系统虚拟表dual,该表作为系统表的一部分,它内部只存储一条记录,我们可以通过该表获取与系统相关的一些信息或者进行一些简单的逻辑操作。
在该触发器中,我们使用了dual的一个经典用法,即获取定义序列的nextval方法。
通过上面三个步骤,我们就实现了一个表的字段自增,做插入操作时执行以下代码即可:
Insert into Test_Table(Name,Value1) values('xiyang','blog')
通过在数据库中查询结果集,会发现ID列是自增的。
值得一提的是,在数据库操作中,触发器的使用耗费系统资源相对较大。如果对于表容量相对较小的表格我们可以忽略触发器带来的性能影响。考虑到大表操作的性能问题,
我们尽可能的减少触发器的使用。对于如上操作,我们完全可以抛弃触发器的使用,直接手动调用序列函数即可,这样可能在程序维护上稍微带来一些不便。



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
沙发
 楼主| 发表于 2020-4-7 14:07:01 | 只看该作者
回复

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
板凳
发表于 2020-4-7 22:40:26 | 只看该作者
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
地板
发表于 2020-4-7 22:41:17 | 只看该作者

点评

回帖下班  详情 回复 发表于 2020-4-8 18:34
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
5#
 楼主| 发表于 2020-4-8 18:34:52 | 只看该作者

点评

好嘛  详情 回复 发表于 2020-4-8 21:26
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
6#
发表于 2020-4-8 21:26:07 | 只看该作者
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
7#
发表于 2020-4-8 21:27:18 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
8#
 楼主| 发表于 2020-4-9 14:01:51 | 只看该作者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-24 19:15 , Processed in 0.128299 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表