| PostgreSQL 8.1.9ʸ½ñ | ||||
|---|---|---|---|---|
| Á°¤Î¥Ú¡¼¥¸ | ´¬Ìᤷ | ÁáÁ÷¤ê | ¼¡¤Î¥Ú¡¼¥¸ | |
CREATE [ TEMPORARY | TEMP ] SEQUENCE name [ INCREMENT [ BY ] increment ]
[ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
[ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]CREATE SEQUENCE¤Ï¡¢¿·¤·¤¤¥·¡¼¥±¥ó¥¹Èֹ楸¥§¥Í¥ì¡¼¥¿¤òºîÀ®¤·¤Þ¤¹¡£ ¶ñÂÎŪ¤Ë¤Ï¡¢¿·¤·¤¯name¤È¤¤¤¦Ì¾Á°¤ò»ý¤Ä¡¢1¹Ô¤À¤±¤ÎÆÃ¼ì¤Ê¥Æ¡¼¥Ö¥ë¤ÎºîÀ®¤È½é´ü²½¤ò¹Ô¤¤¤Þ¤¹¡£ ¥·¡¼¥±¥ó¥¹¥¸¥§¥Í¥ì¡¼¥¿¤Ï¡¢¤³¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿¥æ¡¼¥¶¤Ë¤è¤Ã¤Æ½êͤµ¤ì¤Þ¤¹¡£
¥¹¥¡¼¥Þ̾¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤½¤Î¥·¡¼¥±¥ó¥¹¤Ï»ØÄꤵ¤ì¤¿¥¹¥¡¼¥Þ¤ÇºîÀ®¤µ¤ì¤Þ¤¹¡£ ¥¹¥¡¼¥Þ̾¤¬¤Ê¤±¤ì¤Ð¡¢¥·¡¼¥±¥ó¥¹¤Ï¸½ºß¤Î¥¹¥¡¼¥Þ¤ÇºîÀ®¤µ¤ì¤Þ¤¹¡£ ¤Þ¤¿¡¢°ì»þ¥·¡¼¥±¥ó¥¹¤ÏÆÃÊ̤ʥ¹¥¡¼¥Þ¤Ë¸ºß¤¹¤ë¤¿¤á¡¢°ì»þ¥·¡¼¥±¥ó¥¹¤ÎºîÀ®»þ¤Ë¥¹¥¡¼¥Þ̾¤òÍ¿¤¨¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£ ¥·¡¼¥±¥ó¥¹Ì¾¤Ï¡¢Æ±¤¸¥¹¥¡¼¥ÞÆâ¤Î¾¤Î¥·¡¼¥±¥ó¥¹¡¢¥Æ¡¼¥Ö¥ë¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¡¢¥Ó¥å¡¼¤È¤Ï°Û¤Ê¤ë̾Á°¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¥·¡¼¥±¥ó¥¹¤òºîÀ®¤·¤¿¸å¡¢nextval¡¢currval¡¢setval´Ø¿ô¤ò»ÈÍѤ·¤Æ¥·¡¼¥±¥ó¥¹¤òÁàºî¤·¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï¹à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¤Ä¤À¤±¤Ê¤Î¤Ç¡¢¥¥ã¥Ã¥·¥å¤¬¤Ê¤¤¾õÂ֤ˤʤê¤Þ¤¹¡Ë¡£¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
CYCLE¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤È¡¢¥·¡¼¥±¥ó¥¹¤¬¸Â³¦Ã͡ʾº½ç¤Î¾ì¹ç¤Ïmaxvalue¡¢¹ß½ç¤Î¾ì¹ç¤Ïminvalue¡Ë¤Ë㤷¤¿»þ¡¢¤½¤Î¥·¡¼¥±¥ó¥¹¤ò¼þ²ó¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¸Â³¦ÃͤޤÇ㤷¤¿»þ¡¢¼¡¤ËÀ¸À®¤µ¤ì¤ëÈÖ¹æ¤Ï¡¢¾º½ç¤Î¾ì¹ç¤Ïminvalue¡¢¹ß½ç¤Î¾ì¹ç¤Ïmaxvalue¤Ë¤Ê¤ê¤Þ¤¹¡£
NO CYCLE¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥·¡¼¥±¥ó¥¹¤Î¸Â³¦ÃͤË㤷¤¿¸å¤Înextval¸Æ¤Ó½Ð¤·¤ÏÁ´¤Æ¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£
CYCLE¤âNO CYCLE¤â»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢NO CYCLE¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ê¤Þ¤¹¡£
¥·¡¼¥±¥ó¥¹¤òºï½ü¤¹¤ë¤Ë¤ÏDROP SEQUENCE¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£
¥·¡¼¥±¥ó¥¹¤Ïbigint±é»»¤Ë´ð¤Å¤¤¤Æ¤¤¤Þ¤¹¡£ ¤½¤Î¤¿¤á¡¢8¥Ð¥¤¥ÈÀ°¿ô¤ÎÈϰϡÊ-9223372036854775808¤«¤é9223372036854775807¤Þ¤Ç¡Ë¤ò±Û¤¨¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£ Èæ³ÓۏŤ¤¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¡¢8¥Ð¥¤¥ÈÀ°¿ô¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥³¥ó¥Ñ¥¤¥é¤¬¤Ê¤¤¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¤½¤Î¾ì¹ç¡¢¥·¡¼¥±¥ó¥¹¤Ë¤ÏÄ̾ï¤Îinteger±é»»¤¬»ÈÍѤµ¤ì¤Þ¤¹¡Ê¤³¤Î¾ì¹ç¡¢ÈϰϤÏ-2147483648¤«¤é+2147483647¤Þ¤Ç¡Ë¡£
¥·¡¼¥±¥ó¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Îcache¤È¤·¤Æ1¤è¤êÂ礤ÊÃͤòÀßÄꤷ¤¿¾ì¹ç¡¢¤½¤Î¥·¡¼¥±¥ó¥¹¤òÊ£¿ô¤Î¥»¥Ã¥·¥ç¥ó¤ÇƱ»þ¤Ë»ÈÍѤ¹¤ë¤È¡¢Í½ÁÛ³°¤Î·ë²Ì¤Ë¤Ê¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£ ³Æ¥»¥Ã¥·¥ç¥ó¤Ï¡¢¥·¡¼¥±¥ó¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î1²ó¤Î¥¢¥¯¥»¥¹¤Î´Ö¤Ë¡¢Ï¢Â³¤¹¤ë¥·¡¼¥±¥ó¥¹Ãͤò¼èÆÀ¤·¡¢¥¥ã¥Ã¥·¥å¤·¤Þ¤¹¡£ ¤½¤·¤Æ¡¢¥¥ã¥Ã¥·¥å¤·¤¿¿ô¤Ë±þ¤¸¤Æ¡¢¥·¡¼¥±¥ó¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Îlast_value¤òÁý²Ã¤µ¤»¤Þ¤¹¡£ ¤³¤Î¾ì¹ç¡¢¤½¤Î¥»¥Ã¥·¥ç¥ó¤Ï¡¢¤½¤Î¸å¤Îcache-1²ó¤ËÂФ·¤Æ¤Ï¡¢¤¢¤é¤«¤¸¤á¼èÆÀºÑ¤ß¤Î¥·¡¼¥±¥ó¥¹ÃͤòÊÖ¤·¡¢¥·¡¼¥±¥ó¥¹¥ª¥Ö¥¸¥§¥¯¥È¤òÊѹ¹¤·¤Þ¤»¤ó¡£ ¥»¥Ã¥·¥ç¥ó¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¤¬»ÈÍѤµ¤ì¤Ê¤«¤Ã¤¿¥·¡¼¥±¥ó¥¹ÈÖ¹æ¤Ï¡¢¥»¥Ã¥·¥ç¥ó¤Î½ªÎ»»þ¤ËÁ´¤Æ¼º¤ï¤ì¤ë¤¿¤á¡¢·ë²Ì¤È¤·¤Æ¥·¡¼¥±¥ó¥¹¤Ë"·ê"¤¬¤Ç¤¤Þ¤¹¡£
¤µ¤é¤Ë¡¢Ê£¿ô¤Î¥»¥Ã¥·¥ç¥ó¤Ë¤Ï¸ÄÊ̤Υ·¡¼¥±¥ó¥¹Ãͤ¬³ä¤êÅö¤Æ¤é¤ì¤ë¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢Á´¤Æ¤Î¥»¥Ã¥·¥ç¥ó¤¬Âº½Å¤µ¤ì¤ë¤È¡¢¥·¡¼¥±¥ó¥¹Ãͤ¬½çÈÖÄ̤ê¤Ë¤Ê¤é¤Ê¤¤¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
Î㤨¤Ð¡¢cache¤¬10¤Î¾ì¹ç¤ò¹Í¤¨¤Þ¤¹¡£
¥»¥Ã¥·¥ç¥óA¤Ç¤Ï1¤«¤é10¤Þ¤Ç¤ò³ÎÊݤ·¡¢nextval=1¤òÊÖ¤·¤Þ¤¹¡£
¥»¥Ã¥·¥ç¥óB¤Ç¤Ï¡¢¥»¥Ã¥·¥ç¥óA¤¬nextval=2¤òÊÖ¤¹Á°¤Ë¡¢11¤«¤é20¤ò³ÎÊݤ·¡¢nextval=11¤òÊÖ¤·¤Þ¤¹¡£
¤·¤¿¤¬¤Ã¤Æ¡¢cache¤ò1¤ËÀßÄꤷ¤¿¾ì¹ç¤Ïnextval¤¬Ï¢Â³¤·¤¿ÃͤǤ¢¤ë¤È¹Í¤¨¤Æ¤âÌäÂꤢ¤ê¤Þ¤»¤ó¤¬¡¢cache¤ò1¤è¤êÂ礤ÊÃͤËÀßÄꤷ¤¿¾ì¹ç¤Ï¡¢nextval¤ÎÃͤ¬Á´¤Æ°Û¤Ê¤ë¤³¤È¤Î¤ß¤¬Êݾڤµ¤ì¡¢Ï¢Â³¤·¤¿ÃͤǤ¢¤ë¤³¤È¤ÏÊݾڤµ¤ì¤Þ¤»¤ó¡£
¤Þ¤¿¡¢last_value¤Ï¡¢Ãͤ¬nextval¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤¿¤«¤É¤¦¤«¤Ë´Ø·¸¤Ê¤¯¡¢¤¤¤º¤ì¤«¤Î¥»¥Ã¥·¥ç¥ó¤Ë¤è¤Ã¤Æ³ÎÊݤµ¤ì¤¿ºÇ¸å¤ÎÃͤȤʤê¤Þ¤¹¡£
¤³¤Î¾¡¢¤³¤Î¤è¤¦¤Ê¥·¡¼¥±¥ó¥¹¤ËÂФ·¤Æsetval¤¬¼Â¹Ô¤µ¤ì¤Æ¤â¡¢Â¾¤Î¥»¥Ã¥·¥ç¥ó¤Ï¡¢¤½¤ì¤¾¤ì¤¬¥¥ã¥Ã¥·¥å¤·¤¿¼èÆÀºÑ¤ß¤ÎÃͤòÁ´¤Æ»È¤¤²Ì¤¿¤¹¤Þ¤Ç¡¢¤½¤ì¤¬¤ï¤«¤é¤Ê¤¤¤³¤È¤â¹Íθ¤¹¤Ù¤ÌäÂê¤Ç¤¹¡£
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;
°Ê²¼¤ÎÎã³°¤ò½ü¤¡¢CREATE SEQUENCE¤Ïɸ½àSQL¤Ë½¾¤¤¤Þ¤¹¡£
ɸ½à¤Ë¤ª¤±¤ëAS <data type>¼°¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
¼¡¤ÎÃͤò¼è¤ê½Ð¤¹¤Ë¤Ï¡¢É¸½à¤ÎNEXT VALUE FOR¼°¤Ç¤Ï¤Ê¤¯nextval()´Ø¿ô¤ò»ÈÍѤ·¤Þ¤¹¡£
| Á°¤Î¥Ú¡¼¥¸ | ¥Û¡¼¥à | ¼¡¤Î¥Ú¡¼¥¸ |
| CREATE SCHEMA | ¾å¤ËÌá¤ë | CREATE TABLE |