SQL¤Î¤ªÊÙ¶¯¡¡½ç½ø
|
½ç½ø¤ÎºîÀ®
¡Ú´ðËܹ½Ê¸¡ÛCREATE SEQUENCE ½ç½øÌ¾[START WITH ½é´üÃÍ][INCREMENT BY ÁýʬÃÍ] [MINVALUE ºÇ¾®ÃÍ/NOMINVALUE] [MAXVALUE ºÇÂçÃÍ/NOMAXVALUE] [CACHE ¥¥ã¥Ã¥·¥å¿ô/NOCACHE] [CYCLE/NOCYCLE]; ¡ÚÀâÌÀ¡Û½ç½ø¤Ï°ì°Õ¤Ê¿ôÃͤòÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡£ ¡ÚÃí°ÕÀ©¸Â»ö¹àÅù¡Û ¡¦½ç½ø¤ÏÊ£¿ô¤Îɽ¤Ç¶¦Í¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£ ¡¦½ç½ø¤ò»²¾È¤Ç¤¤ë¥æ¡¼¥¶¤Ï½ç½ø¤Î½êͼԤޤ¿¤ÏSELECT ANY SEQUENCE¸¢¸Â¤ò»ý¤Ä¥æ¡¼¥¶¤Ç¤¹¡£ ¡¦°ìÅÙȯ¹Ô¤µ¤ì¤¿ÈÖ¹æ¤Ï¡¢¥í¡¼¥ë¥Ð¥Ã¥¯¤·¤Æ¤â¸µ¤ËÌ᤹¤³¤È¤Ï¤Ç¤¤Ê¤¤¡£¤½¤Î·ë²Ì¡¢·çÈÖ¤¬À¸¤¸¤ë¤³¤È¤â¤¢¤ë¡£ ¡¦CYCLE¥ª¥×¥·¥ç¥ó¤òÀßÄꤷ¤¿¾ì¹ç¤ÏÈֹ椬ºÆÍøÍѤµ¤ì¤Þ¤¹¡£(°ì°Õ¤Ê¿ôÃͤǤϤʤ¯¤Ê¤ë¡£) ¡Ú¼Â¹ÔÎã¡Û ½ç½ø¡Öidsec¡×¤ò½é´üÃÍ100¡¢ÁýʬÃÍ1¤ÇºîÀ®¤·¤Æ¤ß¤Þ¤¹¡£ SQL>CREATE SEQUENCE idsec START WITH 100 INCREMENT BY 1; ¢Í½ç½ø¤¬ºîÀ®¤µ¤ì¤Þ¤·¤¿
CREATE SEQUENCEʸ¤Î³Æ¥ª¥×¥·¥ç¥ó¤È¥Ç¥Õ¥©¥ë¥ÈÃÍ
NEXTVALµ¿»÷Îó¤ÈCURRVALµ¿»÷Îó
¡Ú´ðËܹ½Ê¸¡Û½ç½øÌ¾.NEXTVAL/½ç½øÌ¾.CURRVALµ¿»÷Îó ¡ÚÀâÌÀ¡ÛNEXTVALµ¿»÷Îó¤Ï¿·¤·¤¤½ç½øÈÖ¹æ¤òȯ¹Ô(À¸À®)¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ CURRVALµ¿»÷Îó¤Ï¸½ºß¤Î½ç½øÈÖ¹æ¤ò»²¾È¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¡ÚÃí°ÕÀ©¸Â»ö¹àÅù¡Û ¡¦µ¼»÷ÎóNEXTVALUE,CURRVAL¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê¤È¤³¤í¤Ç¤Ï»ÈÍѤǤ¤Þ¤»¤ó ¡¡DELETEʸ¡¢SELECTʸËô¤ÏUPDATEʸ¤ÎÉûÌä¹ç¤» ¡¡DISTINCT¶çËô¤ÏGROUP BY¶ç¡¢ORDER BY¶ç¤Î¤¢¤ëSELECTʸ ¡¡SELECTʸ¤ÎWHERE¶ç ¡Ú¼Â¹ÔÎã¡Û ½ç½ø¡Öidsec¡×¤Î¸½ºß¤ÎÈÖ¹æ¤ò»²¾È¤·¤Æ¤ß¤Þ¤¹¡£ SQL>SELECT idsec.CURRVAL from dual; ¢Í¹Ô1¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£: ¢ÍORA-08002: ½ç½øIDSEC.CURRVAL¤Ï¤³¤Î¥»¥Ã¥·¥ç¥ó¤Ç¤Ï¤Þ¤ÀÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó NEXTVALʸ¤Ç½ç½ø¡Öidsec¡×¤Î½ç½øÈÖ¹æ¤òȯ¹Ô¤·¤Þ¤¹¡£ SQL>SELECT idsec.NEXTVAL from dual;¡¡ ¢Í100 ¤â¤¦°ìÅÙ¡¢½ç½ø¡Öidsec¡×¤Î¸½ºß¤ÎÈÖ¹æ¤ò»²¾È¤·¤Æ¤ß¤Þ¤¹¡£ SQL>SELECT idsec.CURRVAL from dual; ¢Í100 ¤â¤¦°ìÅÙ¡¢NEXTVALʸ¤Ç½ç½ø¡Öidsec¡×¤Î½ç½øÈÖ¹æ¤òȯ¹Ô¤·¤Þ¤¹¡£ SQL>SELECT idsec.NEXTVAL from dual;¡¡ ¢Í101
½ç½øÈֹ椬ºÇÂçÃͤËÅþ㤷¤¿¤é¤É¤¦¤Ê¤ë¤Î¡©
¡¦½ç½ø¤ËCYCLE¥ª¥×¥·¥ç¥ó¤òÀßÄꤷ¤Æ¤¤¤ë¾ì¹ç¤ÏMINVALUE¤ÎÃͤËÌá¤ê¤Þ¤¹¡£ ¢¨MINVALUE¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤÏ1¤Ç¤¹¡£ ¡¦½ç½ø¤ËCYCLE¥ª¥×¥·¥ç¥ó¤òÀßÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¥¨¥é¡¼¤È¤Ê¤êÈÖ¹æ¤Ïȯ¹Ô¤µ¤ì¤Þ¤»¤ó¡£
½ç½ø¤Îºï½ü
¡Ú´ðËܹ½Ê¸¡ÛDROP SEQUENCE ½ç½øÌ¾ ¡ÚÀâÌÀ¡ÛDROP SEQUENCEʸ¤Ï½ç½ø¤òºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¡ÚÃí°ÕÀ©¸Â»ö¹àÅù¡Û ¡¦½ç½ø¤òºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¥æ¡¼¥¶¤Ï½ç½ø¤Î½êͼԤޤ¿¤ÏDROP ANY SEQUENCE¸¢¸Â¤ò»ý¤Ä¥æ¡¼¥¶¤Ç¤¹¡£ ¡Ú¼Â¹ÔÎã¡Û SQL>DROP SEQUENCE idsec; ¢Í½ç½ø¤¬ºï½ü¤µ¤ì¤Þ¤·¤¿
¥ª¥Ã¥Ñ¥¤É½£±
¥ª¥Ã¥Ñ¥¤É½£²
¡½ç½ø¡Öidsec¡×¤ò½é´üÃÍ100¡¢ÁýʬÃÍ1¤ÇºîÀ® SQL>CREATE SEQUENCE idsec START WITH 100 INCREMENT BY 1; ¢Í½ç½ø¤¬ºîÀ®¤µ¤ì¤Þ¤·¤¿ ¢¥ª¥Ã¥Ñ¥¤É½£±¤ÎidÎó¤Ë½ç½øÈÖ¹æ¤ò»ÈÍѤ·¤Æ¹Ô¤òÄɲà SQL>insert into oppai1 values(idsec.NEXTVAL,'îʢÇú»Ò',100); ¢Í1¹Ô¤¬ºîÀ®¤µ¤ì¤Þ¤·¤¿¡£ £¥ª¥Ã¥Ñ¥¤É½£±¤ËÄɲ䵤줿¹Ô¤ò³Îǧ SQL>select * from oppai1; ¢ÍID NAME BUST ¢Í100 îʢÇú»Ò 100 ¢Í47 ½é²»¤ß¤Î¤ê 89 ¢Í50 ÆçºäÉñ 103 ¤¥ª¥Ã¥Ñ¥¤É½£²¤ÎidÎó¤Ë½ç½øÈÖ¹æ¤ò»ÈÍѤ·¤Æ¹Ô¤òÄɲà SQL>insert into oppai2 values(idsec.NEXTVAL,'ºÙ¿ÈÉÏ»Ò',76); ¢Í1¹Ô¤¬ºîÀ®¤µ¤ì¤Þ¤·¤¿¡£ ¥¥ª¥Ã¥Ñ¥¤É½£²¤ËÄɲ䵤줿¹Ô¤ò³Îǧ SQL>select * from oppai2; ¢ÍID NAME BUST ¢Í25 Á󰿤½¤é 90 ¢Í26 ¹Ó°æÈþ·Ã»Ò 88 ¢Í27 ë߷·ÃΤ¹á 88 ¢Í28 ²ÏÃæ¤¢¤¤ 92 ¢Í101 ºÙ¿ÈÉÏ»Ò 76 ¦¥í¡¼¥ë¥Ð¥Ã¥¯¤ò¼Â¹Ô SQL>rollback; ¢Í¥í¡¼¥ë¥Ð¥Ã¥¯¤¬´°Î»¤·¤Þ¤·¤¿¡£ §¸½ºß¤Î½ç½øÈÖ¹æ¤ò³Îǧ SQL>SELECT idsec.CURRVAL from dual; ¢Í101 ¨½ç½ø¡Öidsec¡×¤òºï½ü SQL>DROP SEQUENCE idsec; ¢Í½ç½ø¤¬ºï½ü¤µ¤ì¤Þ¤·¤¿¡£ º£²ó¤Ï¤³¤³¤Þ¤Ç¡£ |
¥È¥é¥Ã¥¯¥Ð¥Ã¥¯¡Ê0¡Ë
¥È¥é¥Ã¥¯¥Ð¥Ã¥¯Àè¤Îµ»ö
- ¥È¥é¥Ã¥¯¥Ð¥Ã¥¯Àè¤Îµ»ö¤¬¤¢¤ê¤Þ¤»¤ó¡£
¤³¤Îµ»ö¤ÎURL: http://blogs.yahoo.co.jp/sleepy_1005/1333117.html
