zoukankan      html  css  js  c++  java
  • Primary Key Increase by Trigger

    Oracle Create Table:

    CREATE TABLE TAB(
      ID NUMBER(10) NOT NULL PRIMARY KEY,
      NAME VARCHAR(19) NOT NULL
    );
    

    Drop table when exists:

    BEGIN
      EXECUTE IMMEDIATE 'DROP TABLE TAB';
    EXCEPTION
      WHEN OTHERS THEN
        IF SQLCODE != -942 THEN
           RAISE;
        END IF;
    END;

    Create sequence as id:

    CREATE SEQUENCE ID_SEQ_TAB
    START WITH 1  
    INCREMENT BY 1  
    MINVALUE 1  
    NOMAXVALUE  
    NOCACHE;

    Drop sequence when exists:

    BEGIN
      EXECUTE IMMEDIATE 'DROP SEQUENCE ID_SEQ_TAB';
    EXCEPTION
      WHEN OTHERS THEN
        IF SQLCODE != -2289 THEN
           RAISE;
        END IF;
    END;

    Create trigger:

    CREATE OR REPLACE TRIGGER ID_TRI_TAB  
    BEFORE INSERT   
    ON TAB  
    FOR EACH ROW  
    WHEN(NEW.ID IS NULL)  
    BEGIN  
    SELECT ID_SEQ_TAB.NEXTVAL INTO :NEW.ID FROM DUAL;  
    END; 

    Insert into table:

    Insert into table_name (column_name...) values(values...)

    Select column names of a table:

    select column_name from user_tab_columns
    where table_name = 'YOUR TABLE NAME HERE';

    ps:

    • dual:

    A mystery table in Oracle, You can select many things from this table:

    Select a_squence_name.nextval from dual
    
    • Select into from:

    A copy operation on oracle.You can use it like this:

    SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename
  • 相关阅读:
    编写可维护的JavaScript代码(部分)
    Canvas
    初识ES6
    vue.js入门上
    ASP.NET中的物理路径与虚拟路径
    慎用标签选择器
    PHP服务器负载判断
    mac下安装redis
    mac安装memcache
    MySQL定时检查是否宕机并邮件通知
  • 原文地址:https://www.cnblogs.com/henyihanwobushi/p/3584117.html
Copyright © 2011-2022 走看看