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;

    未完待续

  • 相关阅读:
    SQLite简介
    dockerfiles宝藏系列
    Docker容器运行GUI程序的配置方法
    Windows神器cmder
    Typora设置标题自动添加序号
    手机往电脑备份相册
    搜索引擎的高级使用技巧
    Django Model 模型
    前后端分离是什么操作
    搭建FTP(win10版)以及基本FTP操作
  • 原文地址:https://www.cnblogs.com/vanwoos/p/9224509.html
Copyright © 2011-2022 走看看