レコードの自動採番

主キーでユニークな番号を持ちたいときなどに自動的に番号を採番する方法。

  1. 採番用のカウントマスタテーブルを用意する。 プラス、カウンタマスタ用の何らかのプログラムをセットで書いておく。

  2. テーブル作成時にauto noを設定する。 設定した列に自動で番号を振ってくれる。DBMSによっては使えない。MySqlで設定する場合は

create table testm (
  key01           smallint unsigned not null auto_increment primary key,
  data01          varchar(10),
  data02          int8
) type=InnoDB;
  1. シーケンスを使う。 サーバー側でCNT_FOOとかシーケンスを作っておく。  Oracle Enterprise Manager コンソールを開き  ネットワーク>データベース>SID名スキーマDB名>順序  で右クリック-作成

シーケンスの現在の番号の次の値をBBBB_MST.AAAにINSERTする

insert into BBBB_MST ( AAA, XXX, YYY, ZZZ)
Values(CNT_FOO.NEXTVAL, xxx='', yyyy='', zzz='') 

現在の番号を取得する

select CNT_FOO.CURRVAL from Dual