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

     

  • 相关阅读:
    Python(条件判断和循环)
    大端还是小端
    c语言程序设计 字符串拷贝拷贝演变与初衷
    内存 匹配串
    多态 C2
    多态 C1
    判断是否存在不合法字符(C++)
    va_start、vsprintf、va_end
    java中instanceof用法
    c++ vector相关
  • 原文地址:https://www.cnblogs.com/kkdaj/p/12419894.html
Copyright © 2020-2023  润新知