zoukankan      html  css  js  c++  java
  • oracle中实现自增id

    在一些数据库(例如mysql)中,实现自增id只要在建表的时候指定一下即可,

    但是在oracle中要借助sequence来实现自增id,

    要用上自增id,有几种方式:

    1.直接在insert语句中使用sequence的nextval。

    2.在建表时为字段设置default,这种方式我还没测试。

    3.使用触发器,关于触发器的方式,从别人那得到了一个示例,暂且先贴到这里作为备忘。我觉得如果default方式如果可用的话,会比使用触发器的方式简单。

    以下是触发器方式相关的代码:

    CREATE TABLE STUDENT
    (
    ID INT NOT NULL,
    NAME VARCHAR2(4000) NOT NULL,
    PRIMARY KEY(ID)
    )
    TABLESPACE MYDB;
     
    --创建自增ID,名称为:表名_字段名_SEQ
    CREATE SEQUENCE sTUDENT_ID_SEQ MINVALUE 1 NOMAXVALUE INCREMENT BY 1 START WITH 1 NOCACHE;
     
     
    -- 为Insert操作创建触发器,无需在SQL语句里写NEXTVAL,名称为表名_INS_TRG
    CREATE OR REPLACE TRIGGER sTUDENT_INS_TRG BEFORE INSERT ON STUDENT FOR EACH ROW WHEN(NEW.ID IS NULL)
    BEGIN
    SELECT STUDENT_ID_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
    END;

    未完待续

  • 相关阅读:
    HDU 4472 Count DP题
    HDU 1878 欧拉回路 图论
    CSUST 1503 ZZ买衣服
    HDU 2085 核反应堆
    HDU 1029 Ignatius and the Princess IV
    UVa 11462 Age Sort
    UVa 11384
    UVa 11210
    LA 3401
    解决学一会儿累了的问题
  • 原文地址:https://www.cnblogs.com/vanwoos/p/9224509.html
Copyright © 2011-2022 走看看