zoukankan      html  css  js  c++  java
  • Oracle数据库创建一个主键ID自增的表

    一.建表

    CREATE TABLE 表
    (
    ID INTEGER not null,
    NAME NVARCHAR2(256),
    DEL_FLG int
    ,CONSTRAINT "PF_表" PRIMARY KEY ("ID")
    )

    二.创建序列

    CREATE SEQUENCE 表_ID
    INCREMENT BY 1     --指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为1

    START WITH 1          --指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。

    NOMAXVALUE        --为升序指定最大值为1027,为降序指定最大值为-1。

    ORDER
    NOCYCLE
    CACHE 10;             

    三.创建触发器

    CREATE OR REPLACE TRIGGER  触发器名称
    BEFORE INSERT ON 表
    FOR EACH ROW
    BEGIN
    SELECT 序列名称.nextval INTO :NEW.ID FROM DUAL;                --触发条件(sql语句)
    END 触发器名称;

    触发器名:触发器对象的名称。由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。
    触发时间:指明触发器何时执行,该值可取:
    before:表示在数据库动作之前触发器执行;
    after:表示在数据库动作之后触发器执行。
    触发事件:指明哪些数据库动作会触发此触发器:
    insert:数据库插入会触发此触发器;
    update:数据库修改会触发此触发器;
    delete:数据库删除会触发此触发器。
    表 名:数据库触发器所在的表。
    for each row:对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。

    触发器能实现如下功能:

    功能

    1、 允许/限制对表的修改
    2、 自动生成派生列,比如自增字段
    3、 强制数据一致性
    4、 提供审计和日志记录
    5、 防止无效的事务处理
    6、 启用复杂的业务逻辑

  • 相关阅读:
    ServletConfig类
    坑爹的去哪儿网订酒店经历
    python + opencv + pycharm +语音生成
    最近看到的工作要求
    pip in windows
    路由器外接硬盘做nas可行吗?
    阅读201706
    scrum学习
    学习concurrency programming进展
    Reactor/Proactor的比较 (ZZ)
  • 原文地址:https://www.cnblogs.com/xqfk/p/11097879.html
Copyright © 2011-2022 走看看