| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Fast Forward | Next | |
CREATE [ TEMPORARY | TEMP ] SEQUENCE
name
[ INCREMENT [ BY ]
increment
]
[ MINVALUE
minvalue
| NO MINVALUE ] [ MAXVALUE
maxvalue
| NO MAXVALUE ]
[ START [ WITH ]
start
] [ CACHE
cache
] [ [ NO ] CYCLE ]
[ OWNED BY {
table
.
column
| NONE } ]
CREATE SEQUENCE´Â »õ·Î¿î ½ÃÄö½º¹øÈ£ »ý¼º±â¸¦ »ý¼ºÇÕ´Ï´Ù. À̰ÍÀº name À̸§À¸·Î µÈ, »õ·Î¿î Ưº°ÇÑ ´ÜÀÏ Çà Å×À̺íÀ» »ý¼ºÇϰí ÃʱâÈÇÏ´Â °ÍÀ» Æ÷ÇÔÇÕ´Ï´Ù. »ý¼º±â´Â ÀÌ Ä¿¸àµå¸¦ ¹ßÇàÇÏ´Â »ç¿ëÀÚ°¡ ¼ÒÀ¯ÇÕ´Ï´Ù.
½ºÅ°¸¶¸íÀÌ Á¦½ÃµÈ °æ¿ì, ½ÃÄö½º´Â ÁöÁ¤µÈ ½ºÅ°¸¶¿¡¼ »ý¼ºµË´Ï´Ù. ½ºÅ°¸¶¸íÀÌ Á¦½ÃµÇÁö ¾ÊÀº °æ¿ì, ½ÃÄö½º´Â ÇöÀçÀÇ ½ºÅ°¸¶¿¡¼ »ý¼ºµË´Ï´Ù. Àӽà ½ÃÄö½º´Â Ưº°ÇÑ ½ºÅ°¸¶¿¡¼ Á¸ÀçÇϹǷÎ, Àӽà ½ÃÄö½º°¡ »ý¼ºµÉ ½Ã¿¡ ½ºÅ°¸¶¸íÀÌ Á¦½ÃµÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ½ÃÄö½º¸íÀº ´Ù¸¥ ½ÃÄö½º, Å×À̺í, À妽ºÀÇ À̸§ ¶Ç´Â µ¿ÀÏ ½ºÅ°¸¶ ³»ÀÇ ºä À̸§°ú ´Þ¶ó¾ß ÇÕ´Ï´Ù.
½ÃÄö½º°¡ »ý¼ºµÈ ÈÄ, ½ÃÄö½º ¿¬»êÀ» À§ÇØ nextval, currval, ¹× setvalÇÔ¼ö¸¦ »ç¿ëÇϼ¼¿ä.
À̵é ÇÔ¼ö´Â Section 9.12¿¡ ¹®¼ÈµÇ¾î ÀÖ½À´Ï´Ù.
½ÃÄö½º¸¦ Á÷Á¢ °»½ÅÇÒ ¼ö´Â ¾ø¾îµµ, Äõ¸®¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
SELECT * FROM name ;
½ÃÄö½ºÀÇ ÇöÀç »óÅÂ¿Í ¸Å°³º¯¼ö¸¦ °ËÁõ ÇÏ·Á¸é, ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.
ƯÈ÷ ½ÃÄö½ºÀÇ last_valueºÎºÐÀº ¼¼¼Ç¿¡ ÀÇÇØ ÇÒ´çµÈ ¸¶Áö¸· °ªÀ» º¸¿©ÁÝ´Ï´Ù.
(¹°·Ð, ´Ù¸¥ ¼¼¼ÇÀÌ nextvalÈ£ÃâÀ» ½ÃÇàÇϰí ÀÖ´Â °æ¿ì, Ãâ·ÂµÉ Âë¿¡ ÀÌ °ªÀº ¹«¿ëÁö¹°ÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù.)
ÁöÁ¤µÈ °æ¿ì, ½ÃÄö½º °´Ã¼´Â ÀÌ ¼¼¼ÇÀ» À§ÇØ »ý¼ºµÇ°í, ÀÚµ¿ÀûÀ¸·Î ¼¼¼Ç Á¾·á»ó¿¡¼ »èÁ¦µË´Ï´Ù. °ËÁõÀ» °ÅÄ£ ½ºÅ°¸¶¸íÀ» ÂüÁ¶ÇÏÁö ¾Ê´Â ÇÑ, Àӽà ½ÃÄö½º°¡ Á¸ÀçÇÏ´Â µ¿¾È¿¡ µ¿ÀÏÇÑ À̸§À» °¡Áø, ±âÁ¸ÀÇ Ç×±¸ÀûÀÎ ½ÃÄö½º´Â °¡½ÃȵÇÁö ¾Ê½À´Ï´Ù.(ÀÌ ¼¼¼Ç¿¡¼)
»ý¼ºÇÏ´Â ½ÃÄö½ºÀÇ À̸§(°ËÁõÀ» °ÅÄ£ ½ºÅ°¸¶)ÀÔ´Ï´Ù.
°ªÀ» ÁöÁ¤ÇÏ´Â ¿É¼Ç ÀýINCREMENT BY increment Àº, »õ·Î¿î °ªÀ» »ý¼ºÇϱâ À§ÇØ ÇöÀçÀÇ ½ÃÄö½º °ª¿¡ Ãß°¡µË´Ï´Ù. ¾çÀÇ °ªÀº ¿À¸§Â÷¼ø ½ÃÄö½º¸¦ »ý¼ºÇϰí, À½ÀÇ °ªÀº ³»¸²Â÷¼ø ½ÃÄö½º¸¦ »ý¼ºÇÕ´Ï´Ù. µðÆúÆ® °ªÀº 1ÀÔ´Ï´Ù.
ÃÖ¼Ò°ªÀ» °áÁ´ÇÏ´Â ¿É¼ÇÀýMINVALUE minvalue Àº, ½ÃÄö½º¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÀýÀÌ Á¦½ÃµÇÁö ¾Ê°Å³ª NO MINVALUEÀÌ ÁöÁ¤µÇÁö ¾Ê´Â °æ¿ì, µðÆúÆ®°¡ »ç¿ëµË´Ï´Ù. µðÆúÆ®´Â ¿À¸§Â÷¼ø ½ÃÄö½º¿Í ³»¸²Â÷¼ø ½ÃÄö½ºÀÇ °¢°¢ 1 ¹× -263-1ÀÔ´Ï´Ù.
MAXVALUE maxvalue ¿É¼ÇÀýÀº, ½ÃÄö½ºÀÇ ÃÖ´ë°ªÀ» °áÁ¤ÇÕ´Ï´Ù. ÀÌ ÀýÀÌ Á¦½ÃµÇÁö ¾Ê°Å³ª, NO MAXVALUEÀÌ ÁöÁ¤µÇÁö ¾ÊÀº °æ¿ì, µðÆúÆ® °ªÀÌ »ç¿ëµË´Ï´Ù. µðÆúÆ®´Â ¿À¸§Â÷¼ø ½ÃÄö½º ¹× ³»¸²Â÷¼ø ½ÃÄö½ºÀÇ °¢°¢ 263-1 ¹× -1ÀÔ´Ï´Ù.
START WITH start ¿É¼Ç ÀýÀ» »ç¿ëÇϸé, ¾îµð¼¿¡¼³ª ½ÃÄö½º¸¦ ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ÃÀÛ °ªÀÇ µðÆúÆ®´Â, ¿À¸§Â÷¼ø ½ÃÄö½ºÀÇ minvalue ¹× ³»¸²Â÷¼ø ½ÃÄö½ºÀÇ maxvalue ÀÔ´Ï´Ù.
½ÃÄö½º ¹øÈ£¸¦ ÁöÁ¤ÇÏ´Â ¿É¼ÇÀý CACHE cache Àº, º¸´Ù ºü¸¥ ¿¢¼¼½ºÀÇ ¸Þ¸ð¸®¿¡ »çÀüÇÒ´çµÇ°í ÀúÀåµË´Ï´Ù. ÃÖ¼Ò°ªÀº 1(Çѹø¿¡ 1°³ÀÇ °ª¸¸ÀÌ »ý¼ºµË´Ï´Ù, Áï, no cache)À̰í ÀÌ°Í ¶ÇÇÑ µðÆúÆ® ÀÔ´Ï´Ù.
CYCLE¿É¼ÇÀº, maxvalue ¶Ç´Â minvalue ½ÃÄö½º°¡ °¢°¢ ¿À¸§Â÷¼ø ¶Ç´Â ³»¸²Â÷¼ø ½ÃÄö½º·Î µµ´ÞÇÒ ½Ã, ·¦¾î¶ó¿îµåÇÏ´Â °ÍÀ» Çã¿ëÇÕ´Ï´Ù. ÃÖ¼ÒÄ¡ ¶Ç´Â ÃÖ´ëÄ¡¿¡ µµ´ÞÇÏ´Â °æ¿ì, »ý¼ºµÈ ´ÙÀ½ ¼ýÀÚ´Â °¢°¢ minvalue ¶Ç´Â maxvalue °¡ µË´Ï´Ù.
NO CYCLEÀÌ ÁöÁ¤µÈ °æ¿ì, ½ÃÄö½º°¡ ÃÖ´ë°ª¿¡ µµ´ÞÇÑ ÈÄ¿¡, ¸ðµç nextvalÈ£ÃâÀº ¿¡·¯¸¦ ¹ÝȯÇÕ´Ï´Ù.
CYCLE ¶Ç´Â NO CYCLE µÑ ´Ù ÁöÁ¤µÇÁö ¾ÊÀº °æ¿ì, NO CYCLE°¡ µðÆúÆ®°¡ µË´Ï´Ù.
OWNED BY¿É¼ÇÀº ƯÁ¤ÇÑ Å×À̺íÀÇ ¿°ú ¿¬°üµÈ ½ÃÄö½º¸¦ »ý¼ºÇÕ´Ï´Ù. ±×·¯ÇÑ ¿(¶Ç´Â ¿ÀÇ Å×À̺í)ÀÌ »èÁ¦µÇ´Â °æ¿ì, ½ÃÄö½º ¶ÇÇÑ ÀÚµ¿ÀûÀ¸·Î »èÁ¦µË´Ï´Ù. ÁöÁ¤µÈ Å×À̺íÀº, ½ÃÄö½ºÃ³·³ °°Àº ½ºÅ°¸¶ ³»¿¡ ÀÖ¾î¾ß Çϸç, °°Àº ¼ÒÀ¯ÀÚ°¡ ¼ÒÀ¯ÇØ¾ß ÇÕ´Ï´Ù. µðÆúÆ® OWNED BY NONE´Â À̿Ͱ°Àº ¿¬°ü¼ºÀÌ ¾øÀ½À» ÁöÁ¤ÇÕ´Ï´Ù.
½ÃÄö½º¸¦ »èÁ¦Çϱâ À§ÇØ DROP SEQUENCE¸¦ »ç¿ëÇÕ´Ï´Ù.
bigint°è»ê¿¡ ±âÃÊÇÑ ½ÃÄö½ºÀÔ´Ï´Ù. µû¶ó¼ ¹üÀ§´Â, 8¹ÙÀÌÆ® Á¤¼öÀÇ ¹üÀ§ (-9223372036854775808 to 9223372036854775807)¸¦ ÃʰúÇÒ ¼ö ¾ø½À´Ï´Ù. ¿À·¡µÈ Ç÷§Æû»ó¿¡¼, 8¹ÙÀÌÆ® Á¤¼öÀÇ ÄÄÆÄÀÏ·¯´Â Áö¿øµÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì, ½ÃÄö½º´Â Åë»ó integer°è»êÀ» »ç¿ëÇÕ´Ï´Ù. (¹üÀ§´Â -2147483648 ¿¡¼ +2147483647 )
1º¸´Ù Å«
cache
¼³Á¤ÀÌ, 2°³ÀÌ»óÀÇ ¼¼¼Ç¿¡ µ¿½Ã¿¡ »ç¿ëµÇ´Â ½ÃÄö½º °´Ã¼¿¡»ç¿ëµÇ´Â °æ¿ì, ¿¹±âÄ¡ ¾ÊÀº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
°¢°¢ÀÇ ¼¼¼ÇÀº, ÇÑ ¼¼¼ÇÀÌ ½ÃÄö½º °´Ã¼¿¡ Á¢±ÙÇϰí, ½ÃÄö½º °´Ã¼ÀÇ last_value¸¦ ÀûÀýÈ÷ Áõ°¡½ÃŰ´Â µ¿¾È, ¿¬¼ÓÀûÀÎ ½ÃÄö½º °ªÀ» ÇÒ´çÇϰí ij½¬ÇÕ´Ï´Ù.
¼¼¼Ç ³» nextvalÀÇ
cache
-1´ÙÀ½ÀÇ »ç¿ëÀº, ½ÃÄö½º °´Ã¼¸¦ »ç¿ëÇÏÁö ¾Ê°í, »çÀüÇÒ´çµÈ °ªÀ» ¹ÝȯÇÕ´Ï´Ù.
µû¶ó¼, ½ÃÄö½º¿¡ "holes"ÀÇ °á°ú¸¦ °¡Á®¿À´Â ¼¼¼ÇÀÌ Á¾·áµÉ ½Ã, ¼¼¼Ç ³»¿¡¼ »ç¿ëµÇÁö ¾ÊÀº ÇÒ´çµÈ ¸ðµç ¹øÈ£¸¦ ÀÒ°Ô µË´Ï´Ù.
´õ¿íÀÌ, °¢°¢ ´Ù¸¥ ½ÃÄö½º °ªÀ» ÇÒ´çÇϱâ À§ÇØ 2°³ ÀÌ»óÀÇ ¼¼¼ÇÀÌ º¸ÀåµÉ Áö¶óµµ, ¸ðµç ¼¼¼ÇÀÌ °í·ÁµÉ ½Ã, be generated out of°ªÀº »ý¼ºµÉ ¼ö ÀÖ½À´Ï´Ù.
¿¹¸¦µé¸é, 10ÀÇ
cache
ÀÌ ¼³Á¤µÈ ¼¼¼ÇA´Â 1ºÎÅÍ 10±îÁöÀÇ °ªÀ» ÁöÁ¤Çϰí, nextval=1¸¦ ¹ÝȯÇÕ´Ï´Ù.
¼¼¼ÇB´Â 11ºÎÅÍ 20±îÁöÀÇ °ªÀ» ÁöÁ¤Çϰí, ¼¼¼ÇA°¡ nextval=2¸¦ »ý¼ºÇϱâ Àü¿¡ nextval=11¸¦ ¹ÝȯÇÕ´Ï´Ù.
±×·¯¹Ç·Î, 1ÀÇ
cache
¼³Á¤Àº nextval°ªÀÌ ¼øÂ÷ÀûÀ¸·Î »ý¼ºÇÑ´Ù´Â °ÍÀ» ÃßÃøÇÕ´Ï´Ù.
1º¸´Ù Å«
cache
·Î nextval°ªÀÌ ¸ðµÎ ´Ù¸£°í, ¼øÂ÷ÀûÀ¸·Î »ý¼ºµÇÁö ¾Ê´Â´Ù´Â °ÍÀ» ÃßÃøÇØ¾ß ÇÕ´Ï´Ù.
¶ÇÇÑ, last_value´Â nextvalÀÌ °ªÀ» ¹ÝȯÇß´ÂÁö ¹ÝȯÇÏÁö ¾Ê¾Ò´ÂÁö, ¾Æ¹« ¼¼¼ÇÀÌ ÁöÁ¤ÇÑ ÃÖ±ÙÀÇ °ªÀ» ¹Ý¿µÇÕ´Ï´Ù.
¶Ç ´Ù¸¥ °í·Á»çÇ×Àº, ÀÌ·¯ÇÑ ½ÃÄö½º¿¡¼ ½ÇÇàµÈ setval°¡, ij½¬Çß´ø ¸ðµç »çÀüÇÒ´ç °ªÀÌ ¼Ò¸ðµÉ ¶§±îÁö ´Ù¸¥ ¼¼¼Ç¿¡ ÀÇÇØ ÁÖÀǵÇÁö ¾Ê´Â´Ù´Â °ÍÀÔ´Ï´Ù.
101¿¡¼ ½ÃÀÛÇÏ¿©, serial¶ó´Â ½ÃÄö½ºÀÇ ¿À¸§Â÷¼ø ½ÃÄö½º¸¦ »ý¼ºÇÕ´Ï´Ù.
CREATE SEQUENCE serial START 101;
ÀÌ ½ÃÄö½º¿¡¼ ´ÙÀ½ ¼ýÀÚ¸¦ ¼±ÅÃÇϼ¼¿ä.
SELECT nextval('serial');
nextval
---------
114
INSERT¿¡¼ ÀÌ ½ÃÄö½º¸¦ »ç¿ëÇÕ´Ï´Ù.
INSERT INTO distributors VALUES (nextval('serial'), 'nothing');
COPY FROMÄ¿¸àµå ÀÌÈÄ¿¡, ½ÃÄö½º °ªÀ» °»½ÅÇÕ´Ï´Ù.
BEGIN;
COPY distributors FROM 'input_file';
SELECT setval('serial', max(id)) FROM distributors;
END;