zoukankan      html  css  js  c++  java
  • oracle如何创建表的自增ID(通过触发器)

    Oracle中创建表的自增ID(通过触发器),序列的自增ID和触发器的自增ID的区别

    1、新增数据(序列)

    --创建示例表 --
    create table Student(
        stuId number(9) not null,
        stuName varchar2(20) not null,
        stuMsg varchar2(50) null
    )
    
     -- 创建序列  Student_StuId_Seq --
     create sequence Student_StuId_Seq
     increment by 1
     start with 1
     minvalue 1
     maxvalue 999999999;
     
     --调用序列 --
     select Student_StuId_Seq.Nextval 序列号 from dual;
     
     --插入数据(序列)--
     insert into Student(STUID,STUNAME) values(Student_StuId_Seq.Nextval,'王五');

    2、新增数据(触发器)

    --创建示例表 --
    create table Student(
        stuId number(9) not null,
        stuName varchar2(20) not null,
        stuMsg varchar2(50) null
    )
    
     -- 创建序列  Student_StuId_Seq --
     create sequence Student_StuId_Seq
     increment by 1
     start with 1
     minvalue 1
     maxvalue 999999999;
     
    --创建触发器 --
    create or replace trigger Student_StuId_Trigger
    before insert on Student  ----(sysrole为表名)
    for each row----触发每一行
    begin
    select Student_StuId_Seq.Nextval into :new.StuId from dual;
    end;
    
    --新增数据(触发器)--
    insert into Student(STUNAME) values('赵六');

    3、查询结果

    --查询数据--
    select * from Student;

    PS: 序列可以理解成一个获取表的自增ID的函数(手动),触发器是当新增数据(自动)时,获取表的自增ID

  • 相关阅读:
    C++ 纸牌 今日头条面试题
    c++ 病句 今日头条面试题
    C++ 球迷 今日头条面试题
    C++ 活动安排
    C++ 弗洛伊德算法
    填坑 bzoj3337
    bzoj3884 上帝与集合的正确用法
    人参中第一次膜你退货
    洛谷P2216 [HAOI2007]理想的正方形
    洛谷 P1099 树网的核+P2491 [SDOI2011]消防
  • 原文地址:https://www.cnblogs.com/xielong/p/9008978.html
Copyright © 2011-2022 走看看