ORACLE-シーケンス(SEQUENCE)
2101 ワード
連続する数値を自動的に増減することで、
返されるオブジェクト
テーブルを作成するときは、通常、プライマリ・キーが数値(記事番号、商品番号、登録番号...)に割り当てられます.これらの数値番号のオブジェクトを自動的に指定できます.
コンピュータまたはセッションをシャットダウン、再起動または再接続する場合も、 は保持されます.
NEXTVAL:Next Value,以下の値を得る
CURRVAL:Current Value、現在値を取得シーケンス:SQL>DESC USER SEQUENCES管理
なぜ私たちは21に数字を返さなかったのですか?
-DBの立場では、数値計算とリターンのタスクが重いので、20シーケンスを繰り上げて、1つずつ持って帰ります!
ex)メンバーテーブルで使用するシーケンスの作成
このように数字は自動的に少なくなりました!は、1回経過したシーケンスの値を返すことができません.
(3を削除して追加する場合は、3ではなく4を追加します)
あ、シーケンスは変更できません!
返されるオブジェクト
テーブルを作成するときは、通常、プライマリ・キーが数値(記事番号、商品番号、登録番号...)に割り当てられます.これらの数値番号のオブジェクトを自動的に指定できます.
形式
SQL>CREATE SEQUENCE 시퀀스명
INCREMENT BY 한번에 증감할 양(DEFAULT : +1)
START WITH 시작값 (DEFAULT: 0 )
cache 여부
シーケンス関数
NEXTVAL:Next Value,以下の値を得る
SQL> CREATE SEQUENCE test_seq;
시퀀스가 생성되었습니다.
SQL>SELECT test_seq.NEXTVAL FROM DUAL;
-->この関数は数値を返します(実行するたびに増分値を返します).CURRVAL:Current Value、現在値を取得
SQL>SELECT test_seq.CURRVAL FROM DUAL;
SQL> SELECT sequence_name, last_number FROM user_sequences;
なぜ私たちは21に数字を返さなかったのですか?
-DBの立場では、数値計算とリターンのタスクが重いので、20シーケンスを繰り上げて、1つずつ持って帰ります!
ex)メンバーテーブルで使用するシーケンスの作成
SQL> CREATE SEQUENCE MEMBER_SEQ;
시퀀스가 생성되었습니다.
表に数値を入れるときは、数値ではなくシーケンスNEXTBALに数値を入れます.SQL> INSERT INTO member
2 (num, name, addr)
3 VALUES( member_seq.NEXTVAL, '김구라', '노량진');
同じものを追加し続けるSQL> select * from member;
このように数字は自動的に少なくなりました!
(3を削除して追加する場合は、3ではなく4を追加します)
あ、シーケンスは変更できません!
オプションをシーケンスにループ(ポーリング値:開始1、増加1)
SQL> CREATE SEQUENCE TEST_SEQ
2 START WITH 10 --> 시작값 지정
3 INCREMENT BY 10; --> 증가값 지정
Reference
この問題について(ORACLE-シーケンス(SEQUENCE)), 我々は、より多くの情報をここで見つけました https://velog.io/@jeongmmmn/ORACLE-시퀀스SEQUENCEテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol