レポ
クラウドで
伸びる人沈む人

連絡特定商取引将来設計運営方針&メルマガSEの彼女は?
成功レポート集 Fedora9インストール! EclipseでJava Oracleバックアップのアーキテクチャ ゼロからHPでCGI 便利ネット知識
無料レポ&講習 IT業界の実態 linux処方箋 Java処方箋 Oracle処方箋 Perl処方箋
Oracle表の列に自動採番でユニークな番号を挿入

<IT技術の処方箋:Oracle表の列に自動採番でユニークな番号を挿入>



Oracleのテーブルをつくりました。
ある列に、自動でユニーク(一意)な番号を振りたい時があります。


例えば、購入履歴を記録するテーブルで、「全体の通し番号」みたいな列でしょうか。
このような場合は、シーケンス(sequence)を作成します。

●例(作成)
SQL>create sequence no_seq;

これにより、no_seq というシーケンス(オブジェクト)を作成しました。


●例(利用)
SQL>insert into book_table values(no_seq.nextval,'100','book')

no_seq.nextval という値をいれると、
シーケンス(オブジェクト)が自動採番してユニークな値をいれてくれます。


ただし、book_tableに、すでに値が入っている場合は、
no_seq.nextvalの値と重複してしまう可能性があるので注意してください。


あくまでも、no_seqというシーケンス(オブジェクト)が自動的にカウントアップされて、そのカウントアップされた数字が反映されるだけです。


●例(シーケンスの現在値と次の値の確認)
SQL>select no_seq.currval from dual
SQL>select no_seq.nextval from dual
(ちなみに、no_seq.nextvalは見た瞬間にカウントアップされてしまう)


※ちなみに、シーケンスの最大値は10の27乗です。
これは、0.001秒間に1回カウントアップしても、
百兆年くらい持ちます。

だから、何も気にしなくて大丈夫です。
慣れてきましたか?慣れてきたら、
Oracleバックアップの「嘘」も勉強

クラウドで伸びる人沈む人 ||Copyright © 2005-2020 SearchMan,All Rights Reserved.