ORACLE数据库实现主键自增
ORACLE数据库是甲骨文公司的一款关系数据库管理系统。
实现主键自动增长需要四个步骤:
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数据库实现主键自增的更多相关文章
- 在Oracle中设置主键自增
转自:https://www.2cto.com/database/201705/636725.html 数据库设置主键自增">oracle数据库设置主键自增: --创建表 create ...
- [转帖]详解oracle数据库唯一主键SYS_GUID()
详解oracle数据库唯一主键SYS_GUID() https://www.toutiao.com/i6728736163407856139/ 其实 需要注意 这里满不能截取 因为截取了 就不一定唯一 ...
- erlang mnesia数据库设置主键自增
Mnesia是erlang/otp自带的分布式数据库管理系统.mnesia配合erlang的实现近乎理想,但在实际使用当中差强人意,总会有一些不足.mnesia数据表没有主键自增的功能,但在mnesi ...
- Hibernate框架 hilo 方式配置MySQL 数据库的主键自增
hilo(高低位方式high low)是hibernate中最常用的一种生成方式,需要一张额外的表保存hi的值.保存hi值的表至少有一条记录(只与第一条记录有关),否则会出现错误.可以跨数据库. 创建 ...
- 【记录】Mysql数据库更新主键自增
语法:id从1000开始自增: ALTER TABLE 表名 AUTO_INCREMENT = 1000;
- oracle 触发器实现主键自增
drop table book; --创建表 create table book( bookId varchar2() primary key, name varchar2() ); --创建序列 c ...
- Mybatis 操作数据库的主键自增长
本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 crea ...
- postgresql + mybatis insert主键自增方法
postgresql + mybatis插入记录时设置自增主键方法: 一.数据库设置主键自增 1.数据库中id字段选择serial4类型后,会在默认值中生成 nextval('app_id_seq': ...
- oracle 主键自增 设置----杜恩德
<div id="topicList"> <div class="forFlow"> <div class = "pos ...
随机推荐
- 【Python杂货铺】速学python基础
"人生苦短,我学python"是编程届的名言.用python写小脚本的便捷性,让很多其他语言的学习者把python当作辅助语言.拥有了某一个语言的功底,再来学习另外一种语言应该是十 ...
- 《VSTO开发入门教程》配套资源下载
<VSTO开发入门教程> 刘永富 著 清华大学出版社 封面截图 购书网址 京东网 淘宝网 配套资源到如下页面寻找: https://www.cnblogs.com/ryueifu-VBA/ ...
- [LC] 659. Split Array into Consecutive Subsequences
Given an array nums sorted in ascending order, return true if and only if you can split it into 1 or ...
- Linux_打包文件
将多个文件打包成一个大文件,用tar命令 tar是将多个文件前后连接在一起,tar并不对文件进行压缩 tar -cf 要创建的打包文件名(最后加上.tar) 要打包的文件/列表 c代表创 ...
- java中BigDecimal的四舍五入小记
static class test{ public static void main(String[] args) { BigDecimal b=new BigDecimal(45); BigDeci ...
- COMET探索系列二【Ajax轮询复用模型】
写在前面:Ajax轮询相信大家都信手拈来在用,可是有这么一个问题,如果一个网站中同时有好多个地方需要用到这种轮询呢?就拿我们网站来说,有一个未读消息数提醒.还有一个时实时加载最新说说.昨天又加了一个全 ...
- spring web项目中整合netty, akka
spring web项目中整合netty, akka 本身的web项目仍然使用tomcat/jetty8080端口, 在org.springframework.beans.factory.Initia ...
- [LC] 434. Number of Segments in a String
Count the number of segments in a string, where a segment is defined to be a contiguous sequence of ...
- NIO与IO
待续... 该文章部分摘自:http://tutorials.jenkov.com/java-nio/index.html 一.I/O简介 I/O(英语:Input/Output),即输入/输出, 指 ...
- SEO//TODO
目录 技术背景 开发环境 学习过程 参考资料 结束语 技术背景 开发环境 学习过程 参考资料 结束语 达克效应(D-K effect),全称为邓宁-克鲁格效应(Dunning-Kruger effec ...