To create a self increasing ID field in an oracle database

  • 2021-12-05 07:46:07
  • OfStack

The steps to use the self-increasing ID field in oracle are cumbersome and can be summarized as follows:

--Create a table


CREATE TABLE ADVICE
(
ID INT NOT NULL,
ACTIVE INT DEFAULT 1 NOT NULL,
TYPE INT NOT NULL, 
MSG VARCHAR2(512) NOT NULL,
ADVICE VARCHAR2(4000) NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT ADVICE_UNI UNIQUE(TYPE,MSG)
)TABLESPACE MYDB;

-- Create self-increment ID The name is: table name _ Field name _SEQ
CREATE SEQUENCE ADVICE_ID_SEQ MINVALUE 1 NOMAXVALUE INCREMENT BY 1 START WITH 1 NOCACHE;


--  For Insert Action to create a trigger without the need to create a trigger in the SQL Written in the statement NEXTVAL The name is the table name _INS_TRG
CREATE OR REPLACE TRIGGER ADVICE_INS_TRG BEFORE INSERT ON ADVICE FOR EACH ROW WHEN(NEW.ID IS NULL)
BEGIN
SELECT ADVICE_ID_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
END;

Related articles: