user7197002
user7197002

Reputation:

How to define a auto increment column using oracle 11g

Ho can i define a integer auto increment with oracle 11g?This is my code with mysql user_id int(6) not null auto_increment primary key how can i have this line with oracle?Because i've already the same database in mysql now i want to build the same structure with oracle

Upvotes: 0

Views: 2322

Answers (1)

mmartin2409
mmartin2409

Reputation: 54

You can achieve this with a sequence.

CREATE SEQUENCE seq_user;

The above will auto increment by 1, and start at 1.
To insert values using this sequence, you can do the following (for example):

INSERT INTO table_name (user_id) VALUES (seq_user.NEXTVAL);

To automate this process, you could reference the sequence in a trigger on the table, that adds this value on an insert automatically:

CREATE OR REPLACE TRIGGER user_trg
BEFORE INSERT ON table_name
FOR EACH ROW

DECLARE

BEGIN
  IF(inserting)
  THEN
    :NEW.USER_ID := seq_user.NEXTVAL;
  END IF;

END;

Upvotes: 1

Related Questions