| ½ÃÄö½ºÀÇ °³³ä |
| ½ÃÄö½ºÀÇ Æ¯Â¡ |
| ½ÃÄö½ºÀÇ »ý¼º |
¡¼Çü½Ä¡½ CREATE SEQUENCE ½ÃÄö½º¸í [ INCREMENT BY Á¤¼ö] [ START WITH Á¤¼ö] [ MAXVALUE n ¦ NOMAXVALUE] [ MINVALUE n ¦ NOMINVALUE] [ CYCLE ¦ NOCYCLE] [ CACHE n ¦ NOCACHE];
| ¿É¼Ç | ¼³¸í |
|---|---|
| INCREMENT BY Á¤¼ö | ½ÃÄö½º ¹øÈ£¸¦ Á¤¼ö¸¸Å¾¿ Áõ°¡(µðÆúÆ®=1) |
| START WITH Á¤¼ö | ½ÃÀÛ°ªÀ» ÁöÁ¤(µðÆúÆ®=1) cycle ¿É¼ÇÀ» »ç¿ëÇÑ °æ¿ì ´Ù½Ã °ªÀ» »ý¼ºÇÒ ¶§ minvalue¿¡ ¼³Á¤ÇÑ °ªºÎÅÍ ½ÃÀÛ |
| MAXVALUE Á¤¼ö | Áõ°¡ÇÒ ¼ö ÀÖ´Â ÃÖ´ë°ª |
| NOMAXVALUE(default) | ½ÃÄö½ºÀÇ ÃÖ´ë°ªÀÌ ¾øÀ½À» Á¤ÀÇ, ¿À¸§Â÷¼øÀº 10^27±îÁö Ä¿Áú ¼ö ÀÖ°í, ³»¸²Â÷¼øÀ¸·Î 1±îÁö ÀÛ¾ÆÁú ¼ö ÀÖÀ½ |
| MINVALUE Á¤¼ö | »ý¼ºÇÒ ¼ö ÀÖ´Â ÃÖ¼Ò°ª |
| NOMINVALUE(default) | ½ÃÄö½ºÀÇ ÃÖ¼Ò°ªÀÌ ¾øÀ½À» Á¤ÀÇ, ¿À¸§Â÷¼øÀº ÃÖ¼Ò 1±îÁö, ³»¸²Â÷¼øÀ¸·Î -(10^26)±îÁö °£´Ù. |
| CYCLE | ÃÖ´ë ¶Ç´Â ÃÖ¼Ò°ª¿¡ µµ´ÞÇÑ ÈÄ °ªÀ» ´Ù½Ã »ý¼º |
| NOCYCLE(default) | ÃÖ´ë ¶Ç´Â ÃÖ¼Ò°ª¿¡ µµ´ÞÇÑ ÈÄ °ªÀ» ´Ù½Ã Àç½ÃÀÛÇÒ ¼ö ¾øÀ½ |
| CACHE | ºü¸¥ access¸¦ À§ÇØ ½ÃÄö½ºÀÇ °ªÀ» ¸Þ¸ð¸®¿¡ ÀúÀå(±âº» 20) |
| NOCACHE | ¾î¶² ½ÃÄö½º°ªµµ ij½ÌµÇÁö ¾ÊÀ½ |
¡¼¿¹Á¦¡½ SQL> create sequence dept_deptno 2 increment by 10 3 start with 50 4 maxvalue 10000 5 nocache 6 nocycle; ½ÃÄö½º°¡ »ý¼ºµÇ¾ú½À´Ï´Ù. SQL>
| Pseudo Ä÷³À» ÀÌ¿ëÇÑ ½ÃÄö½ºÀÇ »ç¿ë |
| Pseudo column | »ç¿ëÇü½Ä | ¼³¸í |
|---|---|---|
| NEXTVAL | ½ÃÄö½º¸í.NEXTVAL | »õ·Î ÀÛ¼ºµÈ ½ÃÄö½ºÀÇ ´ÙÀ½ °ªÀ» ¹Ýȯ |
| CURRVAL | ½ÃÄö½º¸í.CURRVAL | »õ·Î ÀÛ¼ºµÈ ½ÃÄö½ºÀÇ ÇöÀç °ªÀ» ¹Ýȯ |
À¯ÀÇ»çÇ×
1)NEXTVAL°ú CURRVALÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â °æ¿ì
- subquery°¡ ¾Æ´Ñ SELECT ¹®
- INSERT ¹®ÀÇ DML SELECT ¹®
- INSERT ¹®ÀÇ DML VALUES Àý
- UPDATE ¹®ÀÇ SET Àý
2)NEXTVAL°ú CURRVALÀ» »ç¿ëÇÒ ¼ö ¾ø´Â °æ¿ì
- VIEW ¹®ÀÇ SELECT ¹®
- DISTINCT Ű¿öµå¸¦ »ç¿ëÇÑ SELECT ¹®
- GROUP BY, AVING, ORDER BY¸¦ ÀÌ¿ëÇÑ SELECT ¹®
- SELECT, DELETE, UPDATE ¹®¿¡¼ÀÇ subquery
- CREATE TABLE, ALTER TABLE ¸í·É¹®ÀÇ DEFAULT Àý
¡¼¿¹Á¦¡½
SQL> CREATE SEQUENCE dept_deptno
2 INCREMENT BY 10
3 START WITH 50
4 MAXVALUE 10000
5 NOCACHE
6 NOCYCLE;
½ÃÄö½º°¡ »ý¼ºµÇ¾ú½À´Ï´Ù.
SQL> INSERT INTO dept(deptno,dname,loc)
2 VALUES(dept_deptno.NEXTVAL,'DEVELOP','COREA');
1 °³ÀÇ ÇàÀÌ ¸¸µé¾îÁ³½À´Ï´Ù.
SQL> SELECT * FROM dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 DEVELOP COREA
SQL> SELECT dept_deptno.CURRVAL FROM DUAL;
CURRVAL
----------
50
SQL> SELECT dept_deptno.NEXTVAL FROM DUAL;
NEXTVAL
----------
60
SQL>
| ½ÃÄö½º ¼öÁ¤ |
¡¼Çü½Ä¡½ ALTER SEQUENCE ½ÃÄö½º¸í [ INCREMENT BY Á¤¼ö] [ MAXVALUE n | NOMAXVALUE] [ MINVALUE n | NOMINVALUE] [ CYCLE | NOCYCLE] [ CACHE n | NOCACHE];
¡¼¿¹Á¦¡½ SQL> ALTER SEQUENCE dept_deptno 2 INCREMENT BY 20 3 MAXVALUE 500 4 NOCACHE 5 NOCYCLE; ½ÃÄö½º°¡ º¯°æµÇ¾ú½À´Ï´Ù. SQL>
| ½ÃÄö½º »èÁ¦ |
¡¼Çü½Ä¡½ DROP SEQUENCE ½ÃÄö½ºÀ̸§;
¡¼¿¹Á¦¡½ SQL> DROP SEQUENCE dept_deptno; ½ÃÄö½º°¡ »èÁ¦µÇ¾ú½À´Ï´Ù. SQL>
½ÃÄö½º °ªÀÇ °£°ÝÀÌ ¹ß»ýÇÏ´Â °æ¿ì
| ½ÃÄö½º¿¡ ´ëÇÑ Á¤º¸ È®ÀÎ |
| user_sequences | »ç¿ëÀÚ°¡ ¸¸µç ½ÃÄö½º¿¡ ´ëÇÑ Á¤º¸ |
| dba_sequences | µ¥ÀÌÅͺ£À̽º¿¡ ¼³Á¤µÈ ½ÃÄö½º¿¡ ´ëÇÑ Á¤º¸ |
¡¼¿¹Á¦¡½ SQL> SELECT sequence_name,min_value,max_value,increment_by,last_number 2 FROM USER_SEQUENCES; SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY LAST_NUMBER --------------- ---------- ---------- ------------ ----------- DEPT_DEPTNO 1 10000 10 50 SQL>