首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 實作自動遞增欄位:Sequence + Row-Level Trigger 範例

     編輯:Oracle 資料庫基礎

需求

users 表 userid 欄位自動產生 Usr0000001 格式編號。

完整 DDL

-- 1. 建立序列
CREATE SEQUENCE seq_userid;

-- 2. 建立列級觸發器
CREATE OR REPLACE TRIGGER users_bir
BEFORE INSERT ON users
FOR EACH ROW
DECLARE
    v_num NUMBER;
BEGIN
    SELECT seq_userid.NEXTVAL INTO v_num FROM dual;
    :NEW.userid := 'Usr' || LPAD(v_num, 7, '0');
END;
/

測試

INSERT INTO users (col1, col2) VALUES ('a', 'b');
SELECT userid FROM users;  -- Usr0000001

關鍵函數

  • LPAD(expr, length, pad_char):左補零至固定寬度
  • :NEW.column:參考新列值並賦值
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved