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、 啟用復雜的業務邏輯

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM