シーケンス

シーケンス(順序)は、連番を生成する機能。
たとえばシーケンスをINSERT文の中で使用すると、自動的に連番が値として挿入されるので、
ID番号など重複なく一意にしたい列の値をとるのに適している。

シーケンスを作成するにはCREATE SEQUENCE文を使用する。
デフォルトでは、開始値が1、増加量が1となる。
  CREATE SEQUENCE シーケンス名;

シーケンスの現在の値を得るには次のようにする。シーケンスの値は更新されない。
  currval(‘シーケンス名’);

次の値を返し、値を更新する:
  nextval(‘シーケンス名’);

シーケンスの値を設定する:
  setval(\’シーケンス名\’,値);

シーケンス文の使用例:
  insert into orders(order_id,order_date,customer_id,prod_id,qty)
  values(nextval(‘order_id_seq’),now(),2,4,7);

シーケンスを使って連番を作ることができるが、実行したSQL文が失敗した場合でも
シーケンスの値は更新される。このとき、連番になっていない「とび番」が発生する。
シーケンスは完全な連番を保障するものではなく、また、完全な連番を作るのも困難である。
連番はあくまでもデータを区別するための重複していない値として考える。

投稿者 java

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です