| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 9. ÇÔ¼ö¿Í ¿¬»êÀÚ | Fast Forward | Next |
º»Àý¿¡¼´ÂPostgreSQLÀǽÃÄö½º °´Ã¼¿¡ ´ëÇØ ¿¬»êÀ» ½Ç½ÃÇÏ´Â ÇÔ¼ö¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. ½ÃÄö½º °´Ã¼(½ÃÄö½º Á¦³×·¹ÀÌÅͶó°íµµ ´ÜÁö ½ÃÄö½º¶ó°íµµ ºÒ¸³´Ï´Ù)¶õCREATE SEQUENCE·Î ÀÛ¼ºµÇ´Â 1ÇàÀÇ Æ¯º°ÇÑ Å×À̺íÀÔ´Ï´Ù. ½ÃÄö½º °´Ã¼´Â Åë»ó Å×À̺íÀÇ Çà¿¡ ÀÏÀÇÀÇ ½Äº°ÀÚ¸¦ »ý¼ºÇϱâ À§Çؼ »ç¿ëµË´Ï´Ù. Table 9-34¿¡ ¿°ÅµÇ°í ÀÖ´Â ½ÃÄö½º ÇÔ¼ö´Â, ½ÃÄö½º °´Ã¼¿¡¼ºÎÅÍ ¿¬¼ÓÇÑ ½ÃÄö½º°ªÀ» ÃëµæÇϱâ À§ÇÑ , ¾ÈÀüÇÑ ¸ÖƼÀ¯Àú ¸Þ¼Òµå¸¦ Á¦°øÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.
Table 9-34. ½ÃÄö½º ÇÔ¼ö
| ÇÔ¼ö | ¹Ýȯ°ª | ¼³¸í |
|---|---|---|
currval(regclass)
|
bigint | ÁöÁ¤µÈ ½ÃÄö½º¿¡ ´ëÇØnextval·Î ¾òÀ» ¼ö ÀÖ´ø ÃÖ½ÅÀÇ °ªÀ» ¹ÝȯÇÑ´Ù |
nextval(regclass)
|
bigint | ½ÃÄö½º¸¦ ÁøÇà½ÃÄÑ »õ·Î¿î °ªÀ» ¹ÝȯÇÑ´Ù |
setval(regclass, bigint)
|
bigint | ½ÃÄö½ºÀÇ ÇöÀç°ªÀ» ¼³Á¤ÇÑ´Ù |
setval(regclass, bigint, boolean)
|
bigint | ½ÃÄö½ºÀÇ ÇöÀç°ª°úis_calledÇ÷¡±×¸¦ ¼³Á¤ÇÑ´Ù |
½ÃÄö½º ÇÔ¼ö È£Ãâ¿¡ ÀÇÇØ Á¶À۵Ǵ ½ÃÄö½º´ÂregclassÀμö·Î ÁöÁ¤µÇ°í ±×¸®°í ±×°ÍÀºpg_class½Ã½ºÅÛ Ä«Å»·Î±×³»ÀÇ ½ÃÄö½ºÀÇ OID¿¡ Áö³ªÁö ¾Ê½À´Ï´Ù. ¼öÀÛ¾÷À¸·Î OID¸¦ °Ë»ö ÇØ¼´Â ¾ÈµË´Ï´Ù,±×·¯³ª,regclassµ¥ÀÌÅÍÇüÀÇ ÀÔ·Â º¯È¯±â°¡ ´ë½Å ±× ÀÛ¾÷À» ½Ç½ÃÇÕ´Ï´Ù. ´ÜÀÏ ÀοëºÎÈ£·Î µÑ·¯½ÎÀÎ ½ÃÄö½º¸íÀ» ±â¼úÇÕ´Ï´Ù, µû¶ó¼ ±×°ÍÀº ¸®ÅÍ·² Á¤¼ö¿Í °°ÀÌ º¸ÀÔ´Ï´Ù. Åë»óÀÇSQLÀÇ ¸íĪ¿¡¼ÀÇ Á¶ÀÛ°ú ȣȯ¼ºÀ» À¯ÁöÇϱâ À§Çؼ, ¹®ÀÚ¿ÀÌ ½ÃÄö½º¸íÀÌ ÀÌÁß ÀοëºÎÈ£·Î µÑ·¯½Î¿© ÀÖÁö ¾Ê´Â ÇÑ, ¹®ÀÚ¿À» ¼Ò¹®ÀÚ·Î º¯È¯µË´Ï´Ù. µû¶ó¼, ÀÌÇÏ¿Í °°ÀÌ µË´Ï´Ù.
nextval('foo') operates on sequence foo
nextval('FOO') operates on sequence foo
nextval('"Foo"') operates on sequence Foo
ÇÊ¿äÇϸé, ÀÌÇÏ¿Í °°ÀÌ ½ÃÄö½º¸íÀ» ½ºÅ°¸¶·Î ¼ö½ÄÇÒ ¼ö ÀÖ½À´Ï´Ù.
nextval('myschema.foo') operates on myschema.foo
nextval('"myschema". foo') same as above
nextval('foo') searches search path for foo
regclass¿¡ °üÇÑ º¸´Ù »ó¼¼ÇÑ Á¤º¸´ÂSection 8.12À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
Note: PostgreSQL 8.1 ÀÌÀü¿¡ À־Â, ½ÃÄö½º ÇÔ¼öÀÇ Àμö´ÂregclassÇüÀº ¾Æ´Ñ,textÇüÀ̾ú½À´Ï´Ù. ±×¸®°í »ó±âÀÇ ÅØ½ºÆ® ¹®ÀÚ¿À¸·ÎºÎÅÍ OID°ªÀ¸·ÎÀÇ º¯È¯Àº °¢°¢ÀÇ È£Ãâ ½ÇÇà½Ã¿¡ ÀϾ½À´Ï´Ù. ÈĹæ ȣȯ¼ºÀ» À§ÇØ, ÀÌ ±¸Á¶´Â ¾ÆÁ÷ Á¸ÀçÇÕ´Ï´Ù¸¸, ³»ºÎÀûÀ¸·Î´Â ÇÔ¼ö°¡ ½ÇÇàµÇ±â Àü¿¡text·ÎºÎÅÍregclass¿¡ÀÇ ¾Ï¹¬Àû °Á¦Çü º¯È¯À¸·Î¼ ÇöÀç 󸮵ǰí ÀÖ½À´Ï´Ù.
¸®ÅÍ·² ¹®ÀÚ¿À¸·Î¼ ½ÃÄö½º ÇÔ¼öÀÇ Àμö¸¦ ±â¼úÇÒ ¶§´Â,regclassµ¥ÀÌÅÍÇüÀÇ Á¤¼ö°¡ µË´Ï´Ù. À̰ÍÀº ´ÜÁö OIDÀ̱⠶§¹®¿¡, ´ÙÀ½¿¡ À̸§ÀÌ ´Ù½Ã ¼³Á¤µÇ¾ú´Ùµç°¡, schemaÀÇ ÀçÇÒ´çµÇ¾úÀ½¿¡µµ ºÒ±¸Çϰí, ¿ø·¡ÀÇ ½Äº°µÈ ½ÃÄö½º¸¦ °è½ÂÇÕ´Ï´Ù. ÀÌ"Á¤Àû ¹ÙÀεù"ÀÇ ÇൿÀº, Åë»ó ¿ÀÇ µðÆúÆ®¿Í ºä ÂüÁ¶ÇÏ´Â ½ÃÄö½º¿¡ ÀÖ¾î ¸Å·ÂÀÌ ÀÖ½À´Ï´Ù. ±×·¯³ª, ¶§¶§·Î ½ÇÇà½Ã¿¡ ½ÃÄö½º ÂüÁ¶°¡ ÇØ°áµÇ´Â "µ¿Àû ¹ÙÀεù"ÀÌ ¹Ù¶÷Á÷ÇÕ´Ï´Ù. µ¿Àû ¹ÙÀεùÀÇ ÇൿÀ» ¾òÀ¸·Á¸é , Á¤¼ö¸¦regclass°¡ ¾Æ´Ï¶ó, text»ó¼ö·Î¼ ±× »ó¼ö¸¦ ÀúÀå½Ãŵ´Ï´Ù.
nextval('foo'::text) foo is looked up at runtimeµ¿Àû ¹ÙÀεùÀº PostgreSQLÀÇ ¸±¸®½º 8.1 ÀÌÀü¿¡ Áö¿øµÈ ÇൿÀ̾úÀ¸¹Ç·Î, ±¸·¡ÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ½Ã¸àƽ½º¸¦ À¯ÁöÇÏ°í ½ÍÀº °æ¿ì ÀÌ¿Í °°ÀÌ ÇÒ Çʿ䰡 ÀÖÀ» °æ¿ìµµ ÀÖ½À´Ï´Ù.
¹°·Ð, ½ÃÄö½º ÇÔ¼öÀÇ Àμö´Â »ó¼ö¿Í ÇÔ²², ½ÄÀÌ µÉ ¼öµµ ÀÖ½À´Ï´Ù. ÅØ½ºÆ®½ÄÀÇ °æ¿ì, ¾Ï¹¬Àû °Á¦Çü º¯È¯À¸·Î ·±Å¸ÀÓ °Ë»öÀÌ ½ÇÇàµË´Ï´Ù.
»ç¿ëÇÒ ¼ö ÀÖ´Â ½ÃÄö½º ÇÔ¼ö·Î´Â ÀÌÇÏÀÇ °ÍÀÌ ÀÖ½À´Ï´Ù.
nextval
½ÃÄö½º ¿ÀºêÁ§Æ®¸¦ ÁøÇàÇÏ¿©, ±× ´ÙÀ½ÀÇ °ª¿¡ ±× °ªÀ» ¹ÝȯÇÕ´Ï´Ù.
À̰ÍÀº ÀÚµ¿ÀûÀ¸·Î 󸮵˴ϴÙ. º¹¼öÀÇ ¼¼¼ÇÀÌ µ¿½Ã¿¡nextval¸¦ ½ÇÇàÇß´Ù°í ÇØµµ, °¢°¢ÀÇ ¼¼¼ÇÀº °³º°ÀÇ ½ÃÄö½º°ªÀ» ¹Ýµå½Ã ¹Þ½À´Ï´Ù.
currval
ÇöÀçÀÇ ¼¼¼Ç¿¡¼, ÀÌ ½ÃÄö½ºÀÇ nextval¿¡ ÀÇÇØ ÃëµæµÈ °¡Àå ÃÖ±Ù°ªÀ» ¹ÝȯÇÕ´Ï´Ù(¼¼¼Ç³»¿¡¼ ±× ½ÃÄö½º¿¡ ´ëÇØnextval°¡ È£ÃâµÇÁö ¾ÊÀº °æ¿ì¿¡´Â, ¿¡·¯°¡ º¸°íµË´Ï´Ù).
À̰ÍÀº ·ÎÄÃÀÇ ¼¼¼Ç°ªÀ» ¹ÝȯÇÏ´Â °ÍÀ¸·ÎºÎÅÍ, ÇöÀçÀÇ ¼¼¼ÇÀÌ ½ÇÇàÇÏ°í ³ª¼ ´Ù¸¥ ¼¼¼ÇÀÌnextval¸¦ ½ÇÇàÇϰųª ÇÏÁö ¾Ê¾Æµµ, ¿¹ÃøÇÒ ¼ö ÀÖ´Â ´äÀ» °¡Á®¿Â´Ù´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.
lastval
ÇöÀçÀÇ ¼¼¼ÇÀÇnextval·Î ¹ÝȯµÇ´Â ÃÖ½ÅÀÇ °ªÀ» ¹ÝȯÇÕ´Ï´Ù.
ÀÌ ÇÔ¼ö´Â,nextval°¡ ÇöÀçÀÇ ¼¼¼Ç ³»¿¡¼ »ç¿ëµÈ ¸¶Áö¸· ½ÃÄö½ºÀÇ °ªÀ» ÆäÄ¡ ÇÏ´Â Àμö·Î¼ÀÇ ½ÃÄö½º¸íÀ» ÃëÇÏ´Â °ÍÀ» Á¦¿ÜÇϰí´Â,currval¿Í µ¿µîÇÕ´Ï´Ù.
ÇöÀçÀÇ ¼¼¼Ç³»¿¡¼ nextval°¡ ¾ÆÁ÷ È£ÃâµÇÁö ¾ÊÀº °æ¿ì, ¿¡·¯°¡ µË´Ï´Ù.
setval
½ÃÄö½º ¿ÀºêÁ§Æ®ÀÇ °è¼ö°ªÀ» Àç¼³Á¤ ÇÕ´Ï´Ù.
2°³ÀÇ ÆÄ¶ó¹ÌÅ͸¦ ¼ÒÀ¯ÇÏ´Â Çü½Ä¿¡¼´Â, ½ÃÄö½ºÀÇlast_valueÇʵ尡 ÁöÁ¤µÈ °ªÀ¸·Î ¼³Á¤ÇØ,is_calledÇʵ带true·Î ¼³Á¤ÇÕ´Ï´Ù.
ÀÌ Àǹ̴Â, ´ÙÀ½ÀÇnextval°¡ °ªÀ» ¹ÝȯÇϱâ Àü¿¡ ½ÃÄö½º¸¦ ÁøÇà½ÃŲ´Ù´Â °ÍÀÔ´Ï´Ù.
3°³ÀÇ ÆÄ¶ó¹ÌÅÍ Çü½ÄÀÇ °æ¿ì,is_called¸¦true ȤÀºfalse·Î ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
false·Î ¼³Á¤µÇ¾úÀ» °æ¿ì, ´ÙÀ½ÀÇnextval°¡ ÁöÁ¤µÈ Á¤È®ÇÑ °ªÀ» ¹ÝȯÇÏ¿©, ½ÃÄö½ºÀÇ ÁøÇàÀº °è¼ÓµÇ´Ânextval·Î ½ÃÀ۵˴ϴÙ.
¿¹¸¦ µé¸é,
SELECT setval('foo', 42); Next nextval will return 43
SELECT setval('foo', 42, true); Same as above
SELECT setval('foo', 42, false); Next nextval will return 42
setval¿¡ ÀÇÇØ ¹ÝȯµÇ´Â °á°ú´Â Á¦ 2¹øÂ°ÀÇ ÀμöÀÇ °ªÀÔ´Ï´Ù.
µðÆúÆ®ÀÇ ÆÄ¶ó¹ÌÅÍ¿¡ ÀÇÇØ ½ÃÄö½º ¿ÀºêÁ§Æ®°¡ ÀÛ¼ºµÇ°í ÀÖ´Ù¸é,nextvalÀÇ È£Ãâ·Î 1À¸·ÎºÎÅÍ ½ÃÀ۵Ǵ ¿¬¼ÓÀûÀÎ °ªÀ» ¹ÝȯÇÕ´Ï´Ù.
±× ¿ÜÀÇ ÇൿÀº
CREATE SEQUENCE
Ä¿¸àµåÀÇ Æ¯º°ÇÑ ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇÏ¿© ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸´Â Ä¿¸àµåÀÇ ·¹ÆÛ·±½º ÆäÀÌÁö¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.
Important: µ¿ÀÏÇÑ ½ÃÄö½º·ÎºÎÅÍ ¼öÄ¡¸¦ ÃëµæÇÏ´Â µ¿½Ã¿¡ ½ÇÇàµÇ´Â Æ®·£Àè¼Ç³¢¸®ÀÇ ºí·ÏÀ» ¹æÁöÇϱâ À§ÇØ,
nextval¿¬»êÀº °áÄÚ ·Ñ¹é(rollback) µÇÁö ¾Ê½À´Ï´Ù. ÀÌ·¸°Ô ¸»ÇÏ´Â °ÍÀº, ºñ·Ïnextval¸¦ ½ÇÇàÇÑ Æ®·£Àè¼ÇÀÌ ÈÄ¿¡ Áß´ÜÇß´Ù°í ÇØµµ, °ªÀÌ ÀÎÃâµÇ¸é, ±×°ÍÀº »ç¿ëµÈ °ÍÀ¸·Î °£ÁÖÇÕ´Ï´Ù. Áï, Áß´ÜµÈ Æ®·£Àè¼ÇÀº, ÇÒ´çµÈ °ªÀÇ ½ÃÄö½º ³»¿¡¼ »ç¿ëµÇÁö ¾ÊÀº"°á¼Õ"À» ³²±æ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.setval¿¬»êÀº °áÄÚ ·Ñ¹éÇÏÁö ¾Ê½À´Ï´Ù.