Могу ли я определить целочисленное автоматическое приращение с помощью oracle 11g? Это мой код с mysql user_id int(6) not null auto_increment primary key
Как я могу получить эту строку с помощью oracle? Потому что у меня уже есть одна и та же база данных в mysql теперь я хочу построить ту же структуру с оракуломКак определить столбец автоматического увеличения, используя oracle 11g
0
A
ответ
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
Возможный дубликат [ Auto Increment для Oracle] (http://stackoverflow.com/questions/9733085/auto-increment-for-oracle) – mathguy