Oracle Auto-Increment IDs: Sequence & Trigger Guide
In Oracle, to implement auto-incrementing IDs for tables, it is typically done by combining a Sequence and Trigger. Here are the specific steps:
- Create a sequence to produce incrementing ID values. The sequence can be created using the following statement:
CREATE SEQUENCE table_id_seq
START WITH 1
INCREMENT BY 1
NOCACHE;
The table_id_seq here is the name of the sequence, START WITH 1 indicates starting from 1 incrementally, INCREMENT BY 1 means increasing by 1 each time, and NOCACHE means not caching sequence values.
- Create a trigger that automatically retrieves the next value from a sequence as the ID value when inserting data. The trigger can be created using the following statement:
CREATE OR REPLACE TRIGGER table_id_trigger
BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
SELECT table_id_seq.NEXTVAL
INTO :new.id
FROM dual;
END;
Here, table_id_trigger is the name of the trigger, table_name is the name of the table, and :new.id represents the ID value of the new record to be inserted.
- To define the ID field in the table and set it to auto-increment, you can use the following statement:
ALTER TABLE table_name
ADD id NUMBER PRIMARY KEY;
This completes the configuration for automatically incrementing the ID of a table in Oracle. Now, whenever data is inserted, the ID field will automatically receive the next value from the sequence as the ID value.