笔记

  (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 创建主键自增长的更多相关文章

  1. Oracle创建主键自增表

    Oracle创建主键自增表   1.创建表    create table Test_Increase(            userid number(10) NOT NULL primary k ...

  2. Oracle创建主键优劣

    创建主键方式 一个表的主键是唯一标识,不能有重复,不允许为空. 一个表的主键可以由一个字段或多个字段共同组成. -- 列级,表级建立主键 1.create table constraint_test ...

  3. Oracle 创建主键自增表

    200 ? "200px" : this.width)!important;} --> 介绍 本篇文章主要介绍在oracle中如果创建自增长表,这里要用到序列. create ...

  4. oracle创建主键序列和在ibatis中应用

    oracle创建主键序列 oracle主键序列的查询和ibitas中应用

  5. 5.oracle建表的时候同时创建主键,外键,注释,约束,索引

    5.oracle建表的时候同时创建主键,外键,注释,约束,索引 1 --主键 )); ) ,constraint aba_pr primary key(id,name1)); --外键 )); --复 ...

  6. oracle建表的时候同时创建主键,外键,注释,约束,索引

    --主键create table emp (id number constraint id_pr primary key ,name1 varchar(8));create table emp9 (i ...

  7. oracle快速创建主键

    oracle中,有时我们会发现有一些表中,一些记录它们每个字段的数据 都是一样一样的,即重复数据,这种数据的不存在肯定是不对了. 究其原因,就是该表没有主键,给一个表创建主键,非常容易: alter ...

  8. Oracle 设置主键自增长__Oracle

    转自:https://yq.aliyun.com/ziliao/258074 如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现.不过对于这个数据库的 ...

  9. Oracle 设置主键自增长

    如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现.不过对于这个数据库的常用功能,我们还是有办法实现的.这里将展示使用触发器来实现主键自增. 1.准备 ...

随机推荐

  1. static 继承

    静态方法大家应该都比较熟悉,在这里主要谈一下静态方法在继承时的一些注意事项. 1.父类方法如果是静态方法,子类不能覆盖为非静态方法: 2.父类方法如果是非静态方法,子类不能覆盖为静态方法: 3.父类静 ...

  2. Ubuntu下ssh连接在服务端显示图形界面

    Ubuntu下ssh连接在服务端显示图形界面 step1 安装ssh服务 服务端安装运行ssh,在终端运行命令如下: sudo apt-get install openssh-server 在客户端安 ...

  3. 现代软件工程构建之法 前五章阅读感想&困惑

    第一章 第一节 新时代中国的IT产业市场规则不规范,书中提到社会上有个别软件公司的软件一定要卸载别家公司的软件才能运行,我这里感到疑惑---————是不是说如果 一间软件公司他能做出一个像微软操作系统 ...

  4. APP案例分析之华为浏览器

    第一部分  对华为浏览器的调研,评测 1.对华为浏览器的第一次上手体验 我会使用华为浏览器呢,是因为我买的手机是华为nova,该浏览器也是手机里面预装的.刚开始用的时候也没太注意,感觉跟以前用的其他浏 ...

  5. LeetCode题解:(221) Maximal Square

    题目说明 Given a 2D binary matrix filled with 0's and 1's, find the largest square containing only 1's a ...

  6. Few-Shot/One-Shot Learning

    Few-Shot/One-Shot Learning指的是小样本学习,目的是克服机器学习中训练模型需要海量数据的问题,期望通过少量数据即可获得足够的知识. Matching Networks for ...

  7. 第十周(11.18-11.24)----个人项目----学习java总结2

    一.获取随机数 方法1  (数据类型)(最小值+Math.random()*(最大值-最小值+1)) ,注意这里的每一个括号最好都不要省略掉. 例: public static void main(S ...

  8. oracle 取俩个字符串的差集

    思路: --funcation RemoveSameStr(in_str,splitStr) ;用于去除重复值 ; SELECT b.memberid, RemoveSameStr(wm_concat ...

  9. 微软自己的官网介绍 SSL 参数相关

    https://docs.microsoft.com/en-us/dotnet/api/system.security.authentication.sslprotocols?redirectedfr ...

  10. linux ls文件颜色和底色设置

    转帖 :linux ls文件颜色和底色设置 白色:表示普通文件蓝色:表示目录绿色:表示可执行文件红色:表示压缩文件浅蓝色:链接文件红色闪烁:表示链接的文件有问题黄色:表示设备文件灰色:表示其他文件 这 ...