2012-03-19 15 views

答えて

6

あなたはSEQUENCEを作成する必要があるだろう:

CREATE SEQUENCE your_seq 
    MINVALUE 1 
    MAXVALUE 999999999999999999999999999 
    START WITH 1 
    INCREMENT BY 1 
    CACHE 20; 

次に、あなたが使用します。

INSERT INTO your_table 
    (pk_column, ...) 
SELECT 'A' || your_seq.NEXTVAL ... 

あなたは英数字の値が同様にインクリメントすることにしたい場合は、CHR functionを使用する別のシーケンス&を作成:

SELECT CHR(alpha_seq.NEXTVAL) || your_seq.NEXTVAL ... 

しかし、私の推薦はこの列あなたの代理キー行い、実際の主キー列のためのシーケンス値を使用します

INSERT INTO your_table 
    (pk_column, surrogate_key, ...) 
SELECT your_seq.NEXTVAL, 
     'A' || your_seq.NEXTVAL ... 

... VARCHAR2ためにはNUMBERよりも多くのバイトがかかります。テーブルをジョインするときに違いがあり、参照整合性(IE:B1、B2、B3 ...)に影響を与えずにサロゲートキーを変更できるようになります。

関連する問題