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 ...
随机推荐
- Angular开发者指南(三)数据绑定
数据绑定 AngularJS应用程序中的数据绑定是模型和视图组件之间的数据的自动同步. AngularJS实现数据绑定的方式可以将模型视为应用程序中的单一来源. 视图是模型在任何时候的投影. 当模型更 ...
- Pwn-Gcc编译命令
- 存储过程获取QLIKVIEW关键数据
declare @table table(DDID INT,FHDID INT ,CKDID INT,ZGYSDID INT,CWYSDID INT)--定义表变量来存放存储过程返回的内容insert ...
- github傻瓜的食用方法
配置Git 首先在本地创建ssh key: 1 $ ssh-keygen -t rsa -C "your_email@youremail.com" 后面的your_email@yo ...
- 一:MYsql登录,服务开启和停止
字段的属性: 1:名称 2:数据类型 3:长度 4:约束 SQL的分类:(结构化查询语言) 1:数据查询语言DQL select 2:数据操纵语言DML insert delete u ...
- 次小生成树题(k) poj1679The Unique MST
http://poj.org/problem?id=1679 #include<iostream> #include<vector> #include<cstdio> ...
- python项目中对mysql数据库进行配置,并进行连接测试
在settings.py中配置mysql数据库进行相关配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME ...
- POJ-1811-Prime Test(pollard_rho模板,快速找最小素因子)
题目传送门 sol:Pollard_Rho的模板题,刚看了Pollard_Rho和Miller_Rabin很多原理性的东西看不懂,只是记住了结论勉强能敲代码. Pollard_Rho #include ...
- python常用包
今日所得 collections模块 时间模块 random模块 os模块 sys模块 序列化模块 subprocess模块 collections模块 namedtuple:具名元组 #定义方式一: ...
- Qt5 提示:无法启动此程序,计算机丢失Qt5Widgetsd.dll的解决方法
Qt5工程编译生成可执行的exe文件之后,运行提示无法启动此程序,计算机丢失Qt5Widgetsd.dll… 原因是没有设置好Qt5的环境变量,解决方法如下: 1.打开[环境变量],(不同的系统会有不 ...