クラウドで 伸びる人沈む人 |
|
|
|
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バックアップの「嘘」も勉強 |