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、 启用复杂的业务逻辑

  • 相关阅读:
    EBS SQL > Form & Report
    oracle sql 优化分析点
    MRP 物料需求计划
    MRPII 制造资源计划
    Barcode128 应用实务
    Oracle SQL语句优化技术分析
    APPSQLAP10710 Online accounting could not be created. AP Invoice 无法创建会计分录
    Oracle数据完整性和锁机制
    ORACLE Responsibility Menu Reference to Other User
    EBS 常用 SQL
  • 原文地址:https://www.cnblogs.com/xqfk/p/11097879.html
Copyright © 2011-2022 走看看