1
プライマリ・キーには英数字のフォーマット、つまりA1 A2 A3を使用し、自動インクリメントを使用したいと考えています。Oracleデータベースのプライマリ・キー・フォーマット
どうすればいいですか?それはお勧めですか?
プライマリ・キーには英数字のフォーマット、つまりA1 A2 A3を使用し、自動インクリメントを使用したいと考えています。Oracleデータベースのプライマリ・キー・フォーマット
どうすればいいですか?それはお勧めですか?
あなたは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 ...)に影響を与えずにサロゲートキーを変更できるようになります。
なぜですか?数字のPKに何が問題なのですか? – Rene