zoukankan      html  css  js  c++  java
  • Oracle实现主键自动增长

    在Oracle中创建表时,在给表字段指定属性时是没有,auto_increment 这个自动增长的属性的,在Oracle中要使用 序列(sequence)和 触发器(trigger)来实现。

    例子:

    首先创建一个用于测试的表 AzroadLog

    create table AzroadLog
    (
        id number(12) primary key, -- 主键
        operation_user varchar2(20), 
    );

    然后我们创建一个序列,用于指定 生成 主键的 值,当然在序列中可以设置很多属性。

    --创建自增序列
    create sequence test_sequence
    increment by 1  -- 自动增长1
    start with 1    -- 初始值为1    
    nomaxvalue      -- 不设置最大值    
    nocycle         -- 不循环
    nocache;        -- 不缓存

    最后创建触发器,创建一个行触发器,当我们向表 AzroadLog 中插入一行数据时触发。

    create or replace trigger insert_test
    before insert
    on AzroadLog -- 指定表名
    for each row  -- 这里表示每一行都会触发
    begin
        select test_sequence.nextval into : new.id   form dual;
    end;
    
    在insert触发器中赋值时只能使用new,而不能使用old,因为开始表中是不存在任何数据的。

    完成上面三个步骤,执行插入语句的SQL会发现插入成功:

    insert into AzroadLog(operation_user) values('admin');
  • 相关阅读:
    斐波那契数列
    旋转数组的最小数字
    用两个栈实现队列
    重建二叉树
    从尾到头打印链表
    2020/01/11,人活着是为了一口气
    2020/01/11,放肆和克制,敏感层次
    2020/01/11,记忆单元
    2020/01/11,经济基础决定高层建筑和个性
    git
  • 原文地址:https://www.cnblogs.com/yuanshuang-club/p/13717097.html
Copyright © 2011-2022 走看看