°úÁ¤¸ñÀû

º» °úÁ¤¿¡¼­´Â ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â ´Ù¸¥ µ¥ÀÌÅͺ£À̽º °´Ã¼ Áß ÀϺθ¦ »ý¼ºÇÏ°í À¯ÁöÇÏ´Â ¹ýÀ» ¹è¿ì°Ô µË´Ï´Ù. ÀÌ °´Ã¼´Â ½ÃÄö½º , À妽º, µ¿ÀǾ Æ÷ÇÔÇÕ´Ï´Ù.

 

µ¥ÀÌÅͺ£À̽º °´Ã¼

¸¹Àº ¾îÇø®ÄÉÀ̼ǵéÀº À¯ÀÏÇÑ ¼ýÀÚ °ªÀ» ±âº» Å° °ªÀ¸·Î »ç¿ëÇÕ´Ï´Ù. ÀÌ ¿ä±¸»çÇ×À» ó¸®Çϱâ À§ÇØ Äڵ带 ¾îÇø®ÄÉÀ̼ǿ¡¼­ ±¸ÃàÇϰųª À¯ÀÏÇÑ ¹øÈ£¸¦ »ý¼ºÇϱâ À§ÇØ ½ÃÄö½º¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀϺΠÁúÀÇÀÇ ¼º´ÉÀ» Çâ»ó½ÃÅ°±æ ¿øÇÑ´Ù¸é, À妽ºÀÇ »ý¼ºÀ» °í·ÁÇØ¾ß ÇÕ´Ï´Ù.  ¶ÇÇÑ  ¿­ ¶Ç´Â ¿­ÁýÇÕ¿¡¼­ À¯ÀϼºÀ» °­È­½ÃÅ°±â À§ÇØ À妽º¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¿ÀǾ »ç¿ëÇÏ¿© °´Ã¼¸¦ À§ÇÑ ´ëü¸íÀ» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

½ÃÄö½º¶õ?

½ÃÄö½º´Â Å×À̺íÀÇ Çà¿¡ ´ëÇÑ ½ÃÄö½º ¹øÈ£¸¦ ÀÚµ¿ÀûÀ¸·Î »ý¼ºÇϱâ À§ÇØ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ½ÃÄö½º´Â »ç¿ëÀÚ°¡ »ý¼ºÇÑ µ¥ÀÌÅͺ£À̽º °´Ã¼ÀÌ¸ç ¿©·¯ »ç¿ëÀÚ°¡ °øÀ¯ÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ÃÄö½º¿¡ ´ëÇÑ ÀüÇüÀûÀÎ »ç¿ëÀº °¢ Çà¿¡ ´ëÇØ À¯ÀÏÇØ¾ß ÇÏ´Â ±âº» Å° °ªÀ» »ý¼ºÇϱâ À§Çؼ­ ÀÔ´Ï´Ù. ½ÃÄö½º´Â ³»ºÎ Oracle8 ·çƾ¿¡ ÀÇÇØ ¹ß»ýµÇ°í Áõ°¡(¶Ç´Â °¨¼Ò)µË´Ï´Ù.

½ÃÄö½º ¹øÈ£´Â Å×À̺í°ú °ü°è¾øÀÌ »ý¼ºµÇ°í ÀúÀåµË´Ï´Ù. ±×·¯¹Ç·Î µ¿ÀÏÇÑ ½ÃÄö½º´Â ´ÙÁß Å×ÀÌºí¿¡ ´ëÇØ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.

 

½ÃÄö½º »ý¼º

CREATE SEQUENCE ¹®ÀåÀ» »ç¿ëÇÏ¿© ÀýÂ÷ÀûÀÎ ¹øÈ£¸¦ ÀÚµ¿ÀûÀ¸·Î »ý¼ºÇÕ´Ï´Ù.

±¸¹®¿¡¼­:

sequence

½ÃÄö½ºÀÇ À̸§ÀÔ´Ï´Ù.

INCREMENT BY n

Á¤¼ö °ªÀÎ nÀ¸·Î ½ÃÄö½º ¹øÈ£ »çÀÌÀÇ °£°ÝÀ» ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ÀýÀÌ »ý·«µÇ¸é ½ÃÄö½º´Â  1¾¿ Áõ°¡ÇÕ´Ï´Ù.

START WITH n

»ý¼ºÇϱâ À§ÇØ Ã¹¹ø° ½ÃÄö½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ÀýÀÌ »ý·«µÇ¸é, ½ÃÄö½º´Â 1·Î ½ÃÀ۵˴ϴÙ.

MAXVALUE n

½ÃÄö½º¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Â ÃÖ´ë°ªÀ» ÁöÁ¤ÇÕ´Ï´Ù.

NOMAXVALUE

¿À¸§Â÷¼ø¿ë 10^27 °ú ³»¸²Â÷¼ø¿ë -1ÀÇ ÃÖ´ë°ªÀ» ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ°ÍÀº µðÆúÆ® ¿É¼ÇÀÔ´Ï´Ù.

MINVALUE n

ÃÖ¼Ò ½ÃÄö½º °ªÀ» ÁöÁ¤ÇÕ´Ï´Ù.

NOMINVALUE

¿À¸§Â÷¼ø¿ë 1°ú ³»¸²Â÷¼ø¿ë -(10^26)ÀÇ ÃÖ¼Ò°ªÀ» ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ°ÍÀº µðÆúÆ® ¿É¼ÇÀÔ´Ï´Ù.

CYCLE | NOCYCLE

ÃÖ´ë ¶Ç´Â ÃÖ¼Ò°ª¿¡ µµ´ÞÇÑ ÈÄ¿¡ °è¼Ó °ªÀ» »ý¼ºÇÒ ÁöÀÇ ¿©ºÎ¸¦ ÁöÁ¤ÇÕ´Ï´Ù. NOCYCLEÀÌ µðÆúÆ® ¿É¼ÇÀÔ´Ï´Ù.

CACHE n | NOCACHE

¾ó¸¶³ª ¸¹Àº °ªÀÌ ¸Þ¸ð¸®¿¡ ¿À¶óŬ ¼­¹ö°¡ ¹Ì¸® ÇÒ´çÇÏ°í À¯ÁöÇϴ°¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù. µðÆúÆ®·Î ¿À¶óŬ ¼­¹ö´Â 20À» ij½¬ÇÕ´Ï´Ù.

ÁÖ: NOMINVALUE, NOMAXVALUE¿¡¼­ÀÇ "¿À¸§Â÷¼ø"°ú "³»¸²Â÷¼ø"Àº INCREMENT BY n¿¡¼­ nÀÌ ¾ç¼ö(¿À¸§Â÷¼ø), ȤÀº À½¼ö(³»¸²Â÷¼ø)ÀÏ °æ¿ì¸¦ ³ªÅ¸³À´Ï´Ù.

 

½ÃÄö½ºÀÛ¼º(°è¼Ó)

À§ ¿¹¿¡¼­ DEPT Å×À̺íÀÇ DEPTNO¿¡ ´ëÇØ »ç¿ëµÇ´Â DEPT_DEPTNO¶ó´Â ½ÃÄö½º¸¦ »ý¼ºÇÕ´Ï´Ù. ½ÃÄö½º´Â 91¿¡¼­ ½ÃÀÛÇϸç, ij½¬¸¦ Çã¿ëÄ¡ ¾ÊÀ¸¸ç, »çÀÌŬÀ» Çã¿ëÄ¡ ¾Ê½À´Ï´Ù.

½ÃÄö½º »çÀÌŬº¸´Ù ´õ »¡¸® ¿À·¡µÈ ÇàÀ» Áö¿ì´Â ½Å·ÚÇÒ ¸¸ÇÑ ¸ÞÄ¿´ÏÁòÀ» °¡Áö°í ÀÖÁö ¾ÊÀº °æ¿ì¿¡, ±âº» Å° °ªÀ» »ý¼ºÇϱâ À§ÇØ ½ÃÄö½º°¡ »ç¿ëµÈ´Ù¸é CYCLE ¿É¼ÇÀ» »ç¿ëÇؼ­´Â ¾ÈµË´Ï´Ù.

ÀÚ¼¼ÇÑ ³»¿ëÀº Oracle Server SQL Reference, Release 7.3 ¶Ç´Â 8.0, ¡°CREATE SEQUENCE.¡±¸¦ ÂüÁ¶ÇϽʽÿÀ.

 

½ÃÄö½º È®ÀÎ

Çѹø ½ÃÄö½º¸¦ »ý¼ºÇßÀ¸¸é, ±×°ÍÀº µ¥ÀÌÅÍ »çÀü¿¡ ¹®¼­È­µË´Ï´Ù.½ÃÄö½º°¡ µ¥ÀÌÅͺ£À̽º °´Ã¼°¡ µÈ ÀÌÈÄ¿¡ USER_OBJECTS µ¥ÀÌÅÍ »çÀü Å×ÀÌºí¿¡¼­ ½Äº°ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¶ÇÇÑ µ¥ÀÌÅÍ »çÀüÀÇ USER_SEQUENCES  Å×À̺íÀ» °Ë»öÇÔÀ¸·Î½á ½ÃÄö½ºÀÇ ¼³Á¤À» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.

  SEQUENCE_NAME  MIN_VALUE MAX_VALUE INCREMENT_BY LAST_NUMBER
  -------------  --------- --------- ------------ -----------
  CUSTID                 1 1.000E+27            1         109
  DEPT_DEPTNO            1       100            1          91
  ORDID                  1 1.000E+27            1         622
  PRODID                 1 1.000E+27            1      200381

 

½ÃÄö½º »ç¿ë

ÀÏ´Ü ½ÃÄö½º¸¦ ÀÛ¼ºÇß´Ù¸é, Å×ÀÌºí¿¡ »ç¿ëÇÒ ÀýÂ÷ÀûÀÎ ¹øÈ£¸¦ »ý¼ºÇϱâ À§ÇØ ½ÃÄö½º¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. NEXTVAL°ú CURRVAL Àǻ翭À» »ç¿ëÇÏ¿© ½ÃÄö½º °ªÀ» ÂüÁ¶ÇϽʽÿÀ.

NEXTVAL°ú CURRVAL Àǻ翭

NEXTVAL pseudocolumnÀº ÁöÁ¤µÈ ½ÃÄö½º¿¡¼­ ¼º°øÀûÀ¸·Î ½ÃÄö½º ¹øÈ£¸¦ »©³»±â À§ÇØ »ç¿ëµË´Ï´Ù. ½ÃÄö½º ¸íÀ¸·Î½á NEXTVALÀ» ÂüÁ¶ÇÕ´Ï´Ù. sequence.NEXTVALÀ» ÂüÁ¶ÇÒ ¶§´Â »õ ½ÃÄö½º ¹øÈ£°¡ »ý¼ºµÇ°í ÇöÀç ½ÃÄö½º ¹øÈ£´Â CURRVAL¿¡ À§Ä¡ÇÏ°Ô µË´Ï´Ù.

CURRVAL pseudocolumnÀº ¸· »ý¼ºµÈ ÇöÀç »ç¿ëÀÚÀÇ ½ÃÄö½º ¹øÈ£¸¦ ÂüÁ¶Çϱâ À§ÇØ »ç¿ëµË´Ï´Ù. NEXTVALÀº CURRVALÀÌ ÂüÁ¶µÉ ¼ö ÀÖ±â Àü¿¡ ÇöÀç »ç¿ëÀÚÀÇ ¼¼¼Ç¿¡¼­ ½ÃÄö½º ¹øÈ£¸¦ »ý¼ºÇϱâ À§ÇØ »ç¿ëµÇ¾î¾ß ÇÕ´Ï´Ù. sequence.CURRVALÀÌ ÂüÁ¶µÇ¸é »ç¿ëÀÚÀÇ ÇÁ·Î¼¼½º¿¡ »ç¿ëµÈ ÃÖÈÄ ½ÃÄö½º °ªÀÌ µð½ºÇ÷¹ÀÌ µË´Ï´Ù.

NEXTVAL°ú CURRVAL »ç¿ë ±ÔÄ¢

´ÙÀ½¿¡¼­ NEXTVAL°ú CURRVALÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

´ÙÀ½¿¡¼­ NEXTVAL°ú CURRVALÀ» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

ÀÚ¼¼ÇÑ ³»¿ëÀ» º¸½Ã·Á¸é, Oracle Server SQL Reference, Release 7.3 ¶Ç´Â 8.0, "Pseudocolumns" ¼½¼Ç°ú "CREATE SEQUENCE."¸¦ ÂüÁ¶ÇϽʽÿÀ.

 

½ÃÄö½º »ç¿ë

½½¶óÀÌµå ¿¹¿¡¼­ DEPT Å×ÀÌºí¿¡ »õ ºÎ¼­¸¦ »ðÀÔÇÕ´Ï´Ù. »õ ºÎ¼­¹øÈ£¸¦ »ý¼ºÇϱâ À§ÇØ  DEPT_DEPTNO ½ÃÄö½º¸¦ »ç¿ëÇÕ´Ï´Ù.

SQL> SELECT   dept_deptno.CURRVAL
  2  FROM     dual;

 CURRVAL
 -------
      91

Áö±Ý »õºÎ¼­ÀÇ ½ºÅÇÀÌ µÇ´Â Á¾¾÷¿øÀ» °í¿ëÇϱ⸦ ¿øÇÑ´Ù°í °¡Á¤ÇϽʽÿÀ. ¸ðµç »õ Á¾¾÷¿ø¿¡ ´ëÇØ ¹Ýº¹ÀûÀ¸·Î ½ÇÇàµÉ ¼ö ÀÖ´Â INSERT ¹®ÀåÀº ¾Æ·¡ Äڵ带 Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

SQL> INSERT INTO emp ...
  2  VALUES (emp_empno.NEXTVAL, dept_deptno.CURRVAL, ...

ÁÖ: À§ÀÇ ¿¹´Â ½ÃÄö½º EMP_EMPNO°¡ »õ Á¾¾÷¿ø ¹øÈ£ »ý¼ºÀ» ÀÌ¹Ì ¿Ï·áÇßÀ½À» °¡Á¤ÇÕ´Ï´Ù.

½ÃÄö½º °ª ij½¬

½ÃÄö½º °ª¿¡ ´ëÇØ º¸´Ù ºü¸¥ ¾×¼¼½º¸¦ Çã¿ëÇϱâ À§ÇØ ¸Þ¸ð¸®¿¡ ½ÃÄö½º¸¦ ij½¬ÇÕ´Ï´Ù. ij½¬´Â ½ÃÄö½º¸¦ óÀ½¿¡ ÂüÁ¶ÇÒ ¶§ Çü¼ºµË´Ï´Ù. ´ÙÀ½ ½ÃÄö½º °ª¿¡ ´ëÇÑ °¢ ¿ä±¸´Â ij½¬µÈ ½ÃÄö½º¿¡¼­ ÀоîµéÀÔ´Ï´Ù. ¸¶Áö¸· ½ÃÄö½º°¡ »ç¿ëµÈ ÈÄ¿¡ ½ÃÄö½º¿¡ ¿ä±¸Çϸé ij½¬µÈ ½ÃÄö½º¸¦ ¸Þ¸ð¸®¿¡ °®´Ù ³õ½À´Ï´Ù.

½ÃÄö½º¿¡¼­ °£°ÝÀÇ °æ°è

½ÃÄö½º »ý¼ºÀÚ´Â °£°Ý(gap)¾øÀÌ ÀýÂ÷ÀûÀÎ ¹øÈ£¸¦ ¹ß»ýÇϴµ¥, ÀÌ ÀÛ¾÷Àº Ä¿¹Ô ¶Ç´Â ·Ñ¹é°ú °ü°è¾øÀÌ ¹ß»ýÇÕ´Ï´Ù. ±×·¯¹Ç·Î, ½ÃÄö½º¸¦ Æ÷ÇÔÇÑ ¹®ÀåÀ» ·Ñ¹éÇÑ´Ù¸é, ¹øÈ£´Â ¼Õ½ÇµË´Ï´Ù. ½ÃÄö½º¿¡¼­ °£°Ý(gap)ÀÇ ¶Ç´Ù¸¥ ¿øÀÎÀÌ µÉ ¼ö ÀÖ´Â °æ¿ì´Â ½Ã½ºÅÛ ½ÇÆÐ(crash)ÀÔ´Ï´Ù. ¸Þ¸ð¸®¿¡¼­ ½ÃÄö½º °ªÀ» ij½¬ÇÑ´Ù¸é, ½Ã½ºÅÛ ½ÇÆÐ(crash)ÀÏ ¶§ ÀÌ °ªµéÀº ¼Õ½ÇµË´Ï´Ù.

½ÃÄö½º°¡ Á÷Á¢ÀûÀ¸·Î Å×ÀÌºí¿¡ °íÁ¤µÇ¾î ÀÖÁö ¾Ê±â ¶§¹®¿¡ µ¿ÀÏ ½ÃÄö½º°¡ ´ÙÁß Å×ÀÌºí¿¡¼­ »ç¿ëµÇ¾î Áú ¼ö ÀÖ½À´Ï´Ù. ÀÌ »óȲÀÌ ¹ß»ýÇÑ´Ù¸é, °¢ Å×À̺íÀº ¼øÂ÷ÀûÀÎ ¹øÈ£¿¡ °£°ÝÀÌ »ý±æ ¼ö ÀÖ½À´Ï´Ù.

Áõ°¡ ¾øÀÌ ´ÙÀ½ »ç¿ë °¡´É ½ÃÄö½º °ª ºä

USER_SEQUENCES Å×À̺íÀ» ÁúÀÇÇÏ¿© NOCACHE·Î ½ÃÄö½º°¡ »ý¼ºµÈ °æ¿ì¿¡¸¸, Áõ°¡ ¾øÀÌ ´ÙÀ½ »ç¿ë °¡´É °ªÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.
 

½ÃÄö½º ¼öÁ¤

½ÃÄö½º¿¡ ´ëÇØ  MAXVALUE ÇÑ°è¿¡ µµ´ÞÇÑ´Ù¸é, ´õ ÀÌ»ó ½ÃÄö½º °ªÀ» ÇÒ´ç ¹ÞÀ» ¼ö ¾øÀ» °ÍÀÌ°í,  MAXVALUE¸¦ ÃÊ°úÇÏ´Â ½ÃÄö½º¸¦ ³ªÅ¸³»´Â ¿¡·¯¸¦ ¹ÞÀ» °ÍÀÔ´Ï´Ù. ½ÃÄö½º¸¦ °è¼Ó »ç¿ëÇϱâ À§ÇØ, ALTER SEQUENCE ¹®ÀåÀ» »ç¿ëÇÏ¿© ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

±¸¹®

 ALTER  SEQUENCE  sequence
        [INCREMENT BY n]
        [{MAXVALUE n | NOMAXVALUE}]
        [{MINVALUE n | NOMINVALUE}]
        [{CYCLE | NOCYCLE}]
        [{CACHE n | NOCACHE}];

¿©±â¼­:         sequence                ½ÃÄö½º »ý¼ºÀÚÀÇ À̸§ÀÔ´Ï´Ù.

º¸´Ù ÀÚ¼¼ÇÑ ³»¿ëÀº Oracle Server SQL Reference, Release 7.3 ¶Ç´Â 8.0, ¡°ALTER SEQUENCE.¡±¸¦ ÂüÁ¶ÇϽʽÿÀ

½ÃÄö½º Á¦°Å

µ¥ÀÌÅÍ »çÀü¿¡¼­ ½ÃÄö½º¸¦ Á¦°ÅÇϱâ À§ÇØ, DROP SEQUENCE ¹®ÀåÀ» »ç¿ëÇÕ´Ï´Ù. ½ÃÄö½º¸¦ Á¦°ÅÇϱâ À§ÇØ ½ÃÄö½ºÀÇ ¼ÒÀ¯ÀÚÀ̰ųª  DROP ANY SEQUENCE ±ÇÇÑÀ» °¡Á®¾ß ÇÕ´Ï´Ù.

 ±¸¹®

        DROP   SEQUENCE    sequence;

¿©±â¼­: sequence                ½ÃÄö½º »ý¼ºÀÚÀÇ À̸§ÀÔ´Ï´Ù.

ÀÚ¼¼ÇÑ ³»¿ëÀº Oracle Server SQL Reference, Release 7.3 ¶Ç´Â 8.0, ¡°DROP SEQUENCE.¡± ¸¦ ÂüÁ¶ÇϽʽÿÀ.

Áöħ(À½¼º ¼³¸íÀº ¾ø½À´Ï´Ù)

  • ½ÃÄö½º¸¦ ¼öÁ¤Çϱâ À§Çؼ­´Â ½ÃÄö½º¿¡ ´ëÇÑ ALTER ±ÇÇÑÀ» °¡Áö°Å³ª ¼ÒÀ¯ÀÚÀ̾î¾ß ÇÕ´Ï´Ù.
  • ÀÌÈÄ ½ÃÄö½º ¹øÈ£¸¸ÀÌ ALTER SEQUENCE ¹®Àå¿¡ ÀÇÇØ ¿µÇâÀ» ¹Þ½À´Ï´Ù.
  • START WITH ¿É¼ÇÀº ALTER SEQUENCE¸¦ »ç¿ëÇÏ¿© º¯°æµÉ ¼ö ¾ø½À´Ï´Ù. ½ÃÄö½º´Â ´Ù¸¥ ¹øÈ£¿¡¼­ ½ÃÄö½º¸¦ ´Ù½Ã ½ÃÀÛÇϱâ À§Çؼ­´Â Á¦°ÅÇÏ°í ´Ù½Ã »ý¼ºµÇ¾î¾ß ÇÕ´Ï´Ù.
  • À¯È¿¼º °Ë»ç¸¦ ¼öÇàÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, »õ MAXVALUE´Â ÇöÀç ½ÃÄö½º ¹øÈ£º¸´Ù ÀÛ°Ô µÉ ¼ö ¾ø½À´Ï´Ù.

SQL> ALTER SEQUENCE dept_deptno
  2        INCREMENT BY 1
  3        MAXVALUE 90
  4        NOCACHE
  5        NOCYCLE;
ALTER SEQUENCE dept_deptno
*
ERROR at line 1:
ORA-04009: MAXVALUE cannot be made to be less than the current value

X Á¤´ä:D


X Á¤´ä:1


X Á¤´ä:A