2017-02-02 6 views
0

Могу ли я определить целочисленное автоматическое приращение с помощью oracle 11g? Это мой код с mysql user_id int(6) not null auto_increment primary key Как я могу получить эту строку с помощью oracle? Потому что у меня уже есть одна и та же база данных в mysql теперь я хочу построить ту же структуру с оракуломКак определить столбец автоматического увеличения, используя oracle 11g

+0

Возможный дубликат [ Auto Increment для Oracle] (http://stackoverflow.com/questions/9733085/auto-increment-for-oracle) – mathguy

ответ

1

Вы можете добиться этого с помощью последовательности.

CREATE SEQUENCE seq_user; 

выше будет автоматическое приращение на 1, и начинаются с 1.
Для вставки значений с помощью этой последовательности, вы можете сделать следующее (например):

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

Чтобы автоматизировать этот процесс процесс, вы можете ссылаться на последовательность в триггере таблицы, которая автоматически добавляет это значение в вставку:

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; 
+0

В оракуле это называется суррогатным ключом. – sandman

 Смежные вопросы

  • Нет связанных вопросов^_^