zoukankan      html  css  js  c++  java
  • Oracle 创建主键自增表

    介绍

     本篇文章主要介绍在oracle中如果创建自增长表,这里要用到序列。

    create table tb_student
    (
       id                 NUMBER(10)           not null,
       createtime         DATE                 not null,
       constraint PK_tb_student primary key (id)
    );
    
    comment on table "tb_student" is
    '学生';
    
    comment on column "tb_student"."id" is
    '主键id';
    
    comment on column "tb_student"."createtime" is
    '创建时间';
    
    
    --创建序列
    create sequence seq_tb_student
    minvalue 1
    nomaxvalue
    start with 1
    increment by 1
    nocycle   --一直累加,不循环
    --nocache;  --不缓存
    cache 10; --缓存10条
    
    --创建触发器,如果insert语句不指定ID自动插入增长值
    CREATE OR REPLACE TRIGGER tr_tb_student 
    BEFORE INSERT ON tb_student FOR EACH ROW WHEN (new.id is null)
    begin
    select seq_tb_student.nextval into:new.id from dual;
    end;

     注意:触发器是非必须的,可以从业务上严格要求指定插入值。

    总结

     注意oracle限制对象名的字符长度不能超过30个字符,所以表名要控制在一定的长度否则后面创建序列可能会超过限制,建议表名控制在27个字符以下。

    备注:

        作者:pursuer.chen

        博客:http://www.cnblogs.com/chenmh

    本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。

    《欢迎交流讨论》

  • 相关阅读:
    tiger-complier 问题记录 类型检查
    leetcode 854. K-Similar Strings
    FPO优化简介
    [转载]深入解析结构化异常处理
    再看链接-WIN
    管道控制Telnet
    管道 简介与简单使用
    Detours 简介与简单使用
    netStat逆向分析
    Fport逆向分析以及C++实现
  • 原文地址:https://www.cnblogs.com/chenmh/p/5970361.html
Copyright © 2011-2022 走看看