ORACLE数据库是甲骨文公司的一款关系数据库管理系统。

实现主键自动增长需要四个步骤:

  1. 去看 创建表格
  2. 去看 创建自增序列
  3. 去看 创建触发器
  4. 去看 插入测试

1.创建表格(必须有主键)

-- 创建学生表(student)主键为:s_id
CREATE TABLE student(
s_id NUMBER(10) NOT NULL PRIMARY KEY ,-- 主键列 s_id
s_name VARCHAR2(50), -- 学生姓名 s_name
s_age NUMBER(8) -- 学生年龄 s_age
);

2.创建自增序列

-- 创建自增序列(seq_student)
CREATE SEQUENCE seq_student
INCREMENT BY 1 --每次增加1,可以写非0的任何整数
START WITH 1 -- 从1开始(起始值)
MAXVALUE 999 -- 设置最大值:设置为 NOMAXVALUE 表示无最大值
MINVALUE 1 -- 设置最小值
NOCYCLE -- 不循环一直增加
CACHE 20; -- 设置20个缓存,不使用缓存则写 NOCACHE

到这一步就可以使用了,不过使用的时候必须按格式调用

格式:自增序列的名字.nextval (我这里的序列名为 seq_student )

insert into student values (seq_student.nextval,'李四',28); 

3.创建触发器(插入数据时触发)

create trigger tri_student_ins   --每个触发器名不可一样
before insert on student for each row when (new.s_id is null) --student:换为自己的表名;s_id 换为自己的主键名
begin
select seq_student.nextval into:new.s_id from dual; -- seq_student:换为上一步创建的自增序列名;s_id 换为主键名
end;

4.插入数据测试

insert into student values (DEFAULT,'测试',28);

注意点:

1.创建表格时:必须有主键!

2.创建自增序列时:序列名不要太复杂,id自增根据功能灵活变通!

3.创建触发器时:根据自己的表名,主键名,序列名更换需要更换的位置

ORACLE数据库实现主键自增的更多相关文章

  1. 在Oracle中设置主键自增

    转自:https://www.2cto.com/database/201705/636725.html 数据库设置主键自增">oracle数据库设置主键自增: --创建表 create ...

  2. [转帖]详解oracle数据库唯一主键SYS_GUID()

    详解oracle数据库唯一主键SYS_GUID() https://www.toutiao.com/i6728736163407856139/ 其实 需要注意 这里满不能截取 因为截取了 就不一定唯一 ...

  3. erlang mnesia数据库设置主键自增

    Mnesia是erlang/otp自带的分布式数据库管理系统.mnesia配合erlang的实现近乎理想,但在实际使用当中差强人意,总会有一些不足.mnesia数据表没有主键自增的功能,但在mnesi ...

  4. Hibernate框架 hilo 方式配置MySQL 数据库的主键自增

    hilo(高低位方式high low)是hibernate中最常用的一种生成方式,需要一张额外的表保存hi的值.保存hi值的表至少有一条记录(只与第一条记录有关),否则会出现错误.可以跨数据库. 创建 ...

  5. 【记录】Mysql数据库更新主键自增

    语法:id从1000开始自增: ALTER TABLE 表名 AUTO_INCREMENT = 1000;

  6. oracle 触发器实现主键自增

    drop table book; --创建表 create table book( bookId varchar2() primary key, name varchar2() ); --创建序列 c ...

  7. Mybatis 操作数据库的主键自增长

    本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 crea ...

  8. postgresql + mybatis insert主键自增方法

    postgresql + mybatis插入记录时设置自增主键方法: 一.数据库设置主键自增 1.数据库中id字段选择serial4类型后,会在默认值中生成 nextval('app_id_seq': ...

  9. oracle 主键自增 设置----杜恩德

    <div id="topicList"> <div class="forFlow"> <div class = "pos ...

随机推荐

  1. Hive(二)—— 架构设计

    Hive架构 Figure 1 also shows how a typical query flows through the system. 图一显示一个普通的查询是如何流经Hive系统的. Th ...

  2. 2019-ECfinal-M题-value

    题目传送门 sol:每个下标都有选和不选两种情况,所以总方案数是$2^{n}$,在$n$最大是$100000$的情况下不符合要求.可以这样想,假设$i^{p}=k$有符合题目要求的解,还有一个整数$j ...

  3. CentOS下MySQL忘记root密码解决方法【亲测】

    1.修改MySQL的登录设置: # vim /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 例如: [mysqld] datadir=/var/lib/m ...

  4. if necessary

  5. 吴裕雄--天生自然python学习笔记:python文档操作批量替换 Word 文件中的文字

    我们经常会遇到在不同的 Word 文件中的需要做相同的文字替换,若是一个一个 文件操作,会花费大量时间 . 本节案例可以找出指定目录中的所有 Word 文件(包含 子目录),并对每一个文件进行指定的文 ...

  6. [LC] 8. String to Integer (atoi)

    Implement atoi which converts a string to an integer. The function first discards as many whitespace ...

  7. 使用zxing生成和解析二维码

    二维码: 是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的: 在代码编制上巧妙的利用构成计算机内部逻辑基础的0和1比特流的概念,使用若干个与二进制相对应的几何 ...

  8. docker pull很慢解决办法

    经常拉取镜像的时候很慢或者拉不下来,这里可以使用阿里云镜像加速器,然后试试看有没有效果. ##使用阿里云镜像加速器 [root@localhost ~]# mkdir -p /etc/docker [ ...

  9. 吴裕雄--天生自然python学习笔记:Python3 数据结构

    列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能. list.append(x) 把一个元素添加到列表的结尾,相当于 a[len ...

  10. mysql-5.7.14-winx64解压版配置

    1.下载最新的MySQL文件并且解压 我的位置是 F:\mysql-5.7.14-winx64 2.F:\mysql-5.7.14-winx64\bin; 添加到环境变量-系统变量-PATH下 3.复 ...