当前位置: 首页 > news >正文

数据库的序列

目录

一、序列是什么

二、序列的用途

二、创建序列

三、查看、修改、删除序列

四、使用序列

(1)在插入语句中使用

(2)不在插入语句中使用

五、使用序列的例子


一、序列是什么

数据库对象分为:用户、视图、索引、触发器、存储过程、序列、图表 (Diagram)、规则 (Rule)、表、缺省值 (Default),序列是其中之一。

1个序列可以生成大量唯一数字,可以把它理解为一个唯一数字生成器

二、序列的用途

主要用于实现oracle的自增长:

mysql建表时可以在给主键添加auto increment实现自增长,但是oracle没有提供自增长的机制,只有通过“序列+触发器”实现主键自增长

二、创建序列

create sequence 序列名
increment by 3         -- 每次加3个(如果是-3就是每次减3)

nomaxvalue           -- 不设置最大值 

【maxvalue 99      -- 设置最大值为99】

【minvalue 1         -- 设置最小值为1】

start with 1               -- 从1开始计数    //如果不指定,默认从minvalue开始递增,从maxvalue递减
NOCYCLE               -- 不循环,一直累加
CACHE 10;             --在内存中预先创建10个序列,需要用到就先直接从缓存取,减少时间(数字越大性能越好,但占用内存也越大)

order                       -- 产生的序列值有顺序,比如:第1个序列值是1,第二个2.....

【noorder】           --无序

三、查看、修改、删除序列

查看:desc 序列名

修改:

alter sequence 序列名
maxvalue 200
cache 3;

重命名:rename 旧序列名 to 新序列名;

删除:drop sequence 序列名

四、使用序列

(1)在插入语句中使用

伪列:CURRVAL返回当前(第1次用必须先NEXTVAL生成)序列号、NEXTVAL生成并返回下一个(一个新的)序列号

create sequence student_seq nomaxvalue start with 1 NOCYCLE order;

insert into sutdent(sid,name) values(student_seq.NEXTVAL,‘王五’);

(2)不在插入语句中使用

select student_seq.NEXTVAL from dual;    //dual表是系统数据库sys下的一个虚拟表

五、使用序列的例子

通过触发器实现oracle数据库中student表的主键自增长

第一步:建表

create table student(

int sid not null primary key,

varchar name not null

)


第二步:创建序列

-- 起始值为1,步长为1,没有最大值

CREATE SEQUENCE seq_student

START WITH 1

INCREMENT BY 1

NOMAXVALUE;


第二步:创建触发器

create or replace trigger student_trg

before insert on studnet

for each row

begin

select seq_student.nextval into :new.sid from dual;

end;

http://www.lryc.cn/news/91752.html

相关文章:

  • 2022年回顾
  • 40亿个QQ号,限制1G内存,如何去重?
  • 【django】django的orm的分组查询
  • MySQL5.8在Windows下下载+安装+配置教程
  • Flask or FastAPI? Python服务端初体验
  • 《计算机组成原理》唐朔飞 第7章 指令系统 - 学习笔记
  • Linux:apache网页优化
  • 涨点技巧:注意力机制---Yolov8引入Resnet_CBAM,CBAM升级版
  • solr教程
  • 基于java语言编写的爬虫程序
  • UM2082F08 125k三通道低频无线唤醒ASK接收功能的SOC芯片 汽车PKE钥匙
  • 【SpringBoot_Project_Actual combat】 Summary of Project experience_需要考虑的问题
  • 恒容容器放气的瞬时流量的计算与合金氢化物放氢流量曲线的计算
  • 网络编程_UDP通信
  • windows修改Pycharm的右键打开方式
  • Python入门(十四)函数(二)
  • Allure测试报告定制全攻略,优化你的Web自动化测试框架!
  • 推荐系统算法详解
  • 企业网站架构部署与优化之LAMP
  • 攻防世界安卓逆向练习
  • 自然语言处理从入门到应用——自然语言处理的语言模型(Language Model,LM)
  • 【MySql】InnoDB一棵B+树可以存放多少行数据?
  • 【综述】视频无监督域自适应(VUDA)的小综述
  • 《深入理解计算机系统(CSAPP)》第9章虚拟内存 - 学习笔记
  • 信息论与编码 SCUEC DDDD 期末复习
  • windows安装python开发环境
  • java idea常用的快捷方式
  • lwIP 开发指南
  • RabbitMQ消息属性详解
  • shader 混合模式