🥝Create Auto Increment on Oracle

ในกรณีที่เราทำการ Create Table แล้วต้องการกำหนด Auto Incremental บน Oracle จะไม่เหมือนกับ Database ทั่ว ๆ ไป อย่าง MySQL หรือ SQL Server ที่แค่เลือก Checkbox ก็เสร็จแล้ว แต่บน Oracle จะต้องสร้าง Sequence เพื่อใช้บอกลำดับ ร่วมกับ Trigger ในการดัก Event Insert แล้วทำการหา Next Value ของ Sequence

Get Started

  • ทำการ Create Table

SQL>
CREATE TABLE DEPARTMENT (
  DEPARTMENT_ID NUMBER(4) NOT NULL,
  DEPARTMENT_NAME VARCHAR2(20),
  CONSTRAINT dept_pk PRIMARY KEY(DEPARTMENT_ID)
);
  • ทำการ Create Sequence

SQL>
CREATE SEQUENCE dept_seq START WITH 1;
  • ทำการ Create Trigger

SQL>
CREATE OR REPLACE TRIGGER dept_trig
  BEFORE INSERT ON DEPARTMENT
  FOR EACH ROW
BEGIN
  SELECT dept_seq.nextval
  INTO :new.DEPARTMENT_ID
  FROM dual;
END;

อ่านเพิ่มเติม : https://bit.ly/3a8Wmxh

Last updated

Was this helpful?