• oracle利用触发器实现主键字段自增


    我们都知道oracle主键自增利用的是序列sequence。我们先创建一个sequence:

    1 create sequence test_sequence
    2 start with 1
    3 increment by 1
    4 maxvalue 9999999
    5 nocache

    然后新建一张表,例如te_user表:

    create table te_user(
    user_id number(11) primary key,
    user_name varchar2(50),
    user_pwd varchar2(50)
    )

    如果不用trigger的话,我们插入数据是用到了sequence的nextval属性,例如:

    insert into te_user values(test_sequence.nextval,'张三','123456')
    或者
    insertinto te_user(user_id,user_name,user_pwd) values(test_sequence.nextval,'李四','654321')

    那么如果我们定义了trigger的话,就不需要每次都带入sequence来实现了,新建一个trigger来实现这一目的:

    create or replace trigger test_trigger before insert
    on te_user
    for each row
    declare
        next_user_id number;
    begin
        select test_sequence into next_user_id from dual;
        :new.user_id :=next_user_id;
    end test_trigger

    这样每次te_user表的insert操作都会触发此触发器,我们再进行表插入时只需要:

    insert into te_user(user_id,user_pwd) values ('王五','13579')

    就可以了。

  • 相关阅读:
    第08讲树
    第11讲简单算法
    【ZOJ1004】Anagrams by Stack
    【ZOJ1649】Rescue
    第10讲并查集
    网站建设与网页制作课件
    获取鼠标的坐标
    asp.net页面的默认回车事件
    NeatUpload的安装使用
    Page methods 执行顺序
  • 原文地址:https://www.cnblogs.com/qinglangyijiu/p/8489129.html
Copyright © 2020-2023  润新知