笔记 oracle 创建主键自增长
笔记
(1) 创建表
create table test(
id number(18,2) primary key, -- 主键(unique+not null)
name varchar2(100) not null
);
(2) 创建序列
create sequence seq_test_id
minvalue 1 -- 最小值
start with 1 -- 起始值
increment by 1 -- 步长
nomaxvalue --没有最大值,若有最大值则需要设置,maxvalue,相对的去掉nomaxvalue
nocache -- 不缓存序列,若需要缓存序列的话则改写成cache [number],number为整数,默认为20;
-- 区别: cache 会在需要用到序列之前先缓存一定数量(默认20个)的序列到内存中,可以提高insert语句性能,但会存在跳号的问题,比如当缓存了20个,还剩5个,突然电脑断电,重启后,它会跳过剩下的5个序列,来取值
nocycle; -- 当达到最大值时,不循环使用序列值,循环的话则使用cycle
(3) 创建触发器
create or replace trigger trigger_test_id
before insert on test for each row when (new.id is null)
begin
select seq_test_id.nextval into :new.id from dual;
end;
尽管创建触发器很方便,但一般还是用另一种方式:
hibernate的注解的形式更为方便,快捷,在实体类的主键列上添加注释,4步搞定:
a. @Id -- 标注主键列
b. @Column(name = "id") -- 标注属性与列的对应关系
c. @SequenceGenerator(name = "seq_test", sequenceName = "seq_test_id", allocationSize = 1) -- 标注sequenceName引用数据库中的序列"seq_test_id",并重命名为"seq_test"
d. @GeneratedValue(generator = "sequence_resume_id", strategy = GenerationType.SEQUENCE) --- 标注主键生成器和生成策略
笔记 oracle 创建主键自增长的更多相关文章
- Oracle创建主键自增表
Oracle创建主键自增表 1.创建表 create table Test_Increase( userid number(10) NOT NULL primary k ...
- Oracle创建主键优劣
创建主键方式 一个表的主键是唯一标识,不能有重复,不允许为空. 一个表的主键可以由一个字段或多个字段共同组成. -- 列级,表级建立主键 1.create table constraint_test ...
- Oracle 创建主键自增表
200 ? "200px" : this.width)!important;} --> 介绍 本篇文章主要介绍在oracle中如果创建自增长表,这里要用到序列. create ...
- oracle创建主键序列和在ibatis中应用
oracle创建主键序列 oracle主键序列的查询和ibitas中应用
- 5.oracle建表的时候同时创建主键,外键,注释,约束,索引
5.oracle建表的时候同时创建主键,外键,注释,约束,索引 1 --主键 )); ) ,constraint aba_pr primary key(id,name1)); --外键 )); --复 ...
- oracle建表的时候同时创建主键,外键,注释,约束,索引
--主键create table emp (id number constraint id_pr primary key ,name1 varchar(8));create table emp9 (i ...
- oracle快速创建主键
oracle中,有时我们会发现有一些表中,一些记录它们每个字段的数据 都是一样一样的,即重复数据,这种数据的不存在肯定是不对了. 究其原因,就是该表没有主键,给一个表创建主键,非常容易: alter ...
- Oracle 设置主键自增长__Oracle
转自:https://yq.aliyun.com/ziliao/258074 如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现.不过对于这个数据库的 ...
- Oracle 设置主键自增长
如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现.不过对于这个数据库的常用功能,我们还是有办法实现的.这里将展示使用触发器来实现主键自增. 1.准备 ...
随机推荐
- 《Spring1之第六次站立会议》
<第六次站立会议> 昨天:向小伙伴们请教了我代码的错误的解决方法以及对TCP/IP协议进行了相关的了解. 今天:我把自己项目工程里的服务器端界面进行了优化和完善. 遇到的问题:觉得做的界面 ...
- 《Spring1之第三次站立会议》
<第三次站立会议> 昨天:我对自己找到的代码进行了相关的了解后,把它们在编译环境中进行了编译以及接着对代码进行逐步深入了解: 今天:我把小组成员找到的写关于登录界面的代码加到了我的项目工程 ...
- <构建之法>阅读感想
在阅读<构建之法>之前,我所认为的软件就是通过c,c++等语言编程,制作出的一个能满足人们操作需求的一些代码,认为一个好的软件工程师,就是能够在很短的时间之内,最快的根据需求写出几段代码程 ...
- ssh框架配置数据源 数据库连接没有正常释放
通过多天的改bug 对数据源这个东西了解多了.. 我发现 spring+hibernate下 申请数据库连接是在一个action方法内 也就是说 action 里面有三个 service方 ...
- BNUOJ 52308 We don't wanna work! set模拟
题目链接: https://acm.bnu.edu.cn/v3/problem_show.php?pid=52308 We don't wanna work! Time Limit: 60000msM ...
- nginx使用“sudo service nginx start”启动报错解决方案
下载nginx的启动脚本: # wget -O init-deb.sh http://library.linode.com/assets/660-init-deb.sh 将脚本添加到init.d目录和 ...
- CSS+JS笔记
CSS篇: 1.a标签去掉下划线 a { text-decoration:none; }
- IPV6 简单总结
1. 转帖别人的内容 来源:https://www.2cto.com/net/201112/114937.html 2. 本地用IPV6单播地址 (包括链路本地单播地址 和 站点本地单播地址) 2.1 ...
- Support for SSL/TLS protocols on Windows
https://blogs.msdn.microsoft.com/kaushal/2011/10/02/support-for-ssltls-protocols-on-windows/ Support ...
- .NET 切面编程 PostSharp
目录 概念 实现方式 .Net平台的切面实现 PostSharp示例 概念 Aspect-Oriented Programming(AOP):想想OOP是不是有些熟悉,AOP翻译过来的意思就是面向切面 ...