千家信息网

关于关于序列自增实际应用

发表于:2024-10-19 作者:千家信息网编辑
千家信息网最后更新 2024年10月19日,在一些业务表中原本不需要ID字段作为唯一标识,可是在后期为了方便和需求要在数据表中加ID列作为主键或者外键!那么下面总结了两种方式:解决方案一:序列+UPDATE,原表有数据想新增一列ID,自动增值1
千家信息网最后更新 2024年10月19日关于关于序列自增实际应用

在一些业务表中原本不需要ID字段作为唯一标识,可是在后期为了方便和需求要在数据表中加ID列作为主键或者外键!那么下面总结了两种方式:

解决方案一:

序列+UPDATE,原表有数据想新增一列ID,自动增值

1、创建序列

格式:

create sequence test_seq

start with 1--起始位1

increment by 1--根基需求,每次增加多少

minvalue 1--最小值

maxvalue 999--根据需求最大值

nocache--无缓存

详细请看本人博客序列介绍

2、进行插入

格式:

update 表 set ID=test_seq.nextval;--原数据表中有多少行,ID就会插入多少行

注意这是更改!也就是说原来你表中ID如果有数据将会被覆盖

本方法适用于新建ID列无数据,不牵扯其余列动作指令,保证数据完整性,大多数序列用于自动增长

解决方案二:

另一种场景就是想来点高端的(特殊场景),当我插入或者更改某列,把数据按照序列增长的步调来实现

序列+触发器+游标

1、创建序列

格式:

create sequence test_seq

start with 0--起始位

increment by 3--每次我想增加3

minvalue 1--最小值

maxvalue 999--根据需求最大值

nocache--无缓存

2、创建触发器

格式:

create or replace trigger trig_test

before update on test_table

for each row

declare ing_age number;

begin

if :new.ID = 0 or :new.ID is null then

select test_seq.nextval into ing_age from sys.dual;

:new.ID := ing_age;

end if;

end trig_test;

如果爱有需求可以整个游标,这里不再掩饰,因为如果单存对序列等一类问题操作,这样就复杂化会增加数据库和后期维护的成本负担。



序列 数据 需求 格式 最大 最小 场景 数据表 方案 最大值 游标 缓存 解决方案 触发器 增长 起始 复杂 特殊 业务 也就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发工程设计师 如何学习电脑软件开发 浦东新区品质软件开发销售 还原数据库后查询慢 贵州储存服务器云服务器 宿州市亿网网络技术 出名的即时通讯软件开发 数据库聚集函数限制数据类型吗 was服务器怎么设置编码 如何实现多线程访问数据库 认识黑客与网络安全法 定制化服务器什么价位 使用Nios软件开发的心得 梦幻西游服务器转西北 后台数据库登录密码 普洱服务器显卡生产厂家 天津优米互联网科技有限公司 Hadoop管理数据库清理 设备技术数据库 山西java软件开发服务介绍 亚马逊的服务器是谁家的 sql语句建立次要数据库 创盾网络技术有限公司怎么样 开放式工作组网络安全报告 济南dell服务器 软件开发工程师的简历应该怎么写 镇江市网络安全工作 免费租用vps云服务器 ios手机软件开发服务报价 壹众互联网科技服务有限公司
0