2017-02-02 14 views
0

Hoは、oracle 11gで整数の自動インクリメントを定義できますか?これは、mysqlのコードですuser_id int(6) not null auto_increment primary key oracleでこの行をどのようにすることができますか? mysqlは今、私はoracleと同じ構造を構築したいoracle 11gを使用して自動インクリメント列を定義する方法

+0

[ Auto Increment for Oracle](http://stackoverflow.com/questions/9733085/auto-increment-for-oracle) – mathguy

答えて

1

あなたはシーケンスでこれを達成することができます。

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

はこれを自動化するには:

CREATE SEQUENCE seq_user; 

1により、上記の意志の自動インクリメントし、このシーケンスを使用して値を挿入するには1.
で始まり、あなたは(たとえば)次の操作を行うことができますプロセスでは、テーブル上のトリガでシーケンスを参照することができます。この値は挿入時に自動的にこの値を加算します。

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

oracleでは、これを代理キーと呼びます。 – sandman

関連する問題