zoukankan      html  css  js  c++  java
  • ORACLE数据库实现主键自增

    ORACLE数据库是甲骨文公司的一款关系数据库管理系统

    实现主键自动增长需要四个步骤:

    1. 去看 创建表格
    2. 去看 创建自增序列
    3. 去看 创建触发器
    4. 去看 插入测试

     

    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.创建触发器时:根据自己的表名,主键名,序列名更换需要更换的位置

     

  • 相关阅读:
    【[AH2017/HNOI2017]礼物】
    【[ZJOI2014]力】
    FFT抄袭笔记
    【[SCOI2015]小凸玩矩阵】
    【[SDOI2017]新生舞会】
    bzoj 3277: 串
    【[ZJOI2015]诸神眷顾的幻想乡】
    【[TJOI2017]DNA】
    【[TJOI2018]碱基序列】
    【[TJOI2018]异或】
  • 原文地址:https://www.cnblogs.com/kkdaj/p/12419894.html
Copyright © 2011-2022 走看看