ºìÁªLinuxÃÅ»§
Linux°ïÖú

Oracle¡¢DB2¡¢PostgreSQLÖ®Sequence×ܽá

·¢²¼Ê±¼ä:2007-06-18 00:07:51À´Ô´:ºìÁª×÷Õß:Change
SequenceÊÇÊý¾Ý¿âϵͳ°´ÕÕÒ»¶¨¹æÔò×Ô¶¯Ôö¼ÓµÄÊý×ÖÐòÁС£Õâ¸öÐòÁÐÒ»°ã×÷Ϊ´úÀíÖ÷¼ü£¨ÒòΪ²»»áÖظ´£©£¬Ã»ÓÐÆäËûÈκÎÒâÒå¡£

SequenceÊÇÊý¾Ý¿âϵͳµÄÌØÐÔ£¬ÓеÄÊý¾Ý¿âÓÐSequence£¬ÓеÄûÓС£±ÈÈçOracle¡¢DB2¡¢PostgreSQLÊý¾Ý¿âÓÐSequence£¬MySQL¡¢SQL Server¡¢SybaseµÈÊý¾Ý¿âûÓÐSequence¡£

¸ù¾ÝÎÒ¸öÈËÀí½â£¬SequenceÊÇÊý¾ÝÖÐÒ»¸öÌØÊâ´æ·ÅµÈ²îÊýÁÐµÄ±í£¬¸Ã±íÊÜÊý¾Ý¿âϵͳ¿ØÖÆ£¬ÈκÎʱºòÊý¾Ý¿âϵͳ¶¼¿ÉÒÔ¸ù¾Ýµ±Ç°¼Ç¼Êý´óС¼ÓÉϲ½³¤À´»ñÈ¡µ½¸Ã±íÏÂÒ»Ìõ¼Ç¼Ӧ¸ÃÊǶàÉÙ£¬Õâ¸ö±íûÓÐʵ¼ÊÒâÒ壬³£³£ÓÃÀ´×öÖ÷¼üÓ㬷dz£²»´í£¬ºÇºÇ£¬²»¹ýºÜÓôÃƵĸ÷¸öÊý¾Ý¿â³§ÉÌÄò²»µ½Ò»¸öºøÀï--¸÷Óи÷µÄÒ»Ì׶ÔSequenceµÄ¶¨ÒåºÍ²Ù×÷¡£ÔÚ´ËÎÒ¶Ô³£¼ûÈýÖÖÊý¾Ý¿âµÄSequenceµÄ¶¨ÒåºÍ²Ù×÷×öÒ»¸ö¶Ô±ÈºÍ×ܽᣬÒÔ±ãÈÕºó²é¿´¡£

Ò»¡¢¶¨ÒåSequence

¶¨ÒåÒ»¸öseq_test£¬×îСֵΪ10000£¬×î´óֵΪ99999999999999999£¬´Ó20000¿ªÊ¼£¬ÔöÁ¿µÄ²½³¤Îª1£¬»º´æΪ20µÄÑ­»·ÅÅÐòSequence¡£

OracleµÄ¶¨Òå·½·¨£º
create sequence seq_test
minvalue 10000
maxvalue 99999999999999999
start with 20000
increment by 1
cache 20
cycle
order;

DB2µÄд·¨£º
create sequence seq_test
as bigint
start with 20000
increment by 1
minvalue 10000
maxvalue 99999999999999999
cycle
cache 20
order;

PostgreSQLµÄд·¨£º
create sequence seq_test
increment by 1
minvalue 10000
maxvalue 99999999999999999
start 20000
cache 20
cycle;

¶þ¡¢Oracle¡¢DB2¡¢PostgreSQLÊý¾Ý¿âSequenceÖµµÄÒýÓòÎÊýΪ£ºcurrval¡¢nextval£¬·Ö±ð±íʾµ±Ç°ÖµºÍÏÂÒ»¸öÖµ¡£ÏÂÃæ·Ö±ð´ÓÈý¸öÊý¾Ý¿âµÄSequenceÖлñÈ¡nextvalµÄÖµ¡£

OracleÖУºseq_test.nextval
ÀýÈ磺select seq_test.nextval from dual;

DB2ÖУºnextval for SEQ_TOPICMS
ÀýÈ磺values nextval for seq_test;

PostgreSQLÖУºnextval(seq_test)
ÀýÈ磺select nextval(seq_test);

Èý¡¢SequenceÓëindentityµÄÇø±ðÓëÁªÏµ

SequenceÓëindentityµÄ»ù±¾×÷Óö¼²î²»¶à¡£¶¼¿ÉÒÔÉú³É×ÔÔöÊý×ÖÐòÁС£
SequenceÊÇÊý¾Ý¿âϵͳÖеÄÒ»¸ö¶ÔÏ󣬿ÉÒÔÔÚÕû¸öÊý¾Ý¿âÖÐʹÓ㬺ͱíûÓÐÈκιØϵ£»indentity½ö½öÊÇÖ¸¶¨ÔÚ±íÖÐijһÁÐÉÏ£¬×÷Ó÷¶Î§¾ÍÊÇÕâ¸ö±í¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ