PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
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 ]
CREATE SEQUENCE ����ǰ���ݿ�������һ���µ����к��������� ���������ͳ�ʼ��һ���µ���Ϊ name�ĵ��б���������Ϊʹ�ô�������û����С�
���������һ��ģʽ������ô����������ָ��ģʽ�д����ġ� ���������ڵ�ǰģʽ�д�����ʱ���д�����һ�������ģʽ�У�����������һ����ʱ���е�ʱ�� ���ܸ���ģʽ���� �����������ͬһģʽ�е��������У���������������ͼ��ͬ��
�����д����������ʹ�ú��� nextval�� currval���� nextval �������С���Щ������ Section 9.12 ������ϸ�ĵ���
�����㲻��ֱ�Ӹ���һ�����У��������ʹ����
SELECT * FROM name;
���һ�����еIJ����͵�ǰ״̬���ر������е� last_value �ֶ���ʾ�������˽��̷����������ֵ�� ����Ȼ����Щֵ�ڱ���ӡ������ʱ������Ѿ���ʱ�� --- �������������������ʹ�� nextval����
���������������δʣ���ô�����ж���ֻΪ����Ự������ �����ڻỰ������ʱ���Զ�ɾ��������ʱ���д��ڵ�ʱ�� ͬ�����������Dz��ɼ��ģ���ͬһ�Ự���������������ģʽ���ε��������õġ�
��Ҫ���������к�����������ģʽ���Σ���
��ѡ�Ӿ� 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��һ��ֻ������һ��ֵ, Ҳ����˵û�л��棩��Ҳ��ȱʡ��
��ѡ��CYCLE�ؼ��ֿ�����ʹ���е��� ���ֵ��maxvalue�� �� ��Сֵ��minvalue�� ʱ�ɸ�λ��������ȥ������ﵽ���ޣ����ɵ���һ�����ݽ��ֱ��� ��Сֵ��minvalue�� �� ���ֵ��maxvalue����
��������˿�ѡ�Ĺؼ��� NO CYCLE�� ��ô�����дﵽ�����ֵ֮���κζ� nextval �ĵ��ö�ǿ����һ������ �����û������ CYCLE Ҳû������ NO CYCLE�� ��ô NO CYCLE ��ȱʡ��
ʹ�� DROP SEQUENCE �����ɾ�����С�
�����ǻ��� bigint ����ģ�����䷶Χ���ܳ������ֽڵ�������Χ��-9223372036854775808 �� 9223372036854775807���� ��һЩ��һ���ƽ̨�Ͽ���û�ж��ֽ������ı�����֧�֣� �������������ʹ����ͨ�� integer ���㣨��Χ�� -2147483648 �� +2147483647����
��� cache ���ô���һ�� ����������ж������ڲ�����Ự�ij��ϣ���ô���ܻ��в���Ԥ�ϵĽ�������� ÿ���Ự��һ�η������ж���Ĺ����н����䲢������������ֵ��������Ӧ�������ж���� last_value�� ������ͬһ�������е����� cache-1 �� nextval ��ֻ�Ƿ���Ԥ�ȷ������ֵ�������ö����ж�����ˣ��κ���һ���Ự�з��䵫��û��ʹ�õ����ֶ����ڻỰ��β��ʧ�����������������"�ն�"��
���⣬����ϵͳ��֤Ϊ����Ự�������������ֵ����������������лỰ�� ��ô�����ֵ���ܻᶪʧ˳���磬��� cache ����Ϊ 10����ô�Ự A ������ 1..10 ���ҷ��� nextval=1�� Ȼ��Ự B ���ܻᱣ�� 11..20 Ȼ���ڻỰ A ���� nextval=2 ֮ǰ���� nextval=11����ˣ����� cache ����Ϊһ����������ǿ���ȫ�ؼ��� nextval ֵ��˳�����ɵģ� ������� cache ���õô���һ�� ��ô��ֻ�ܼ��� nextval ֵ����Ψһ�ã���������ȫ˳������ɡ� ͬ����last_value ����ӳ�κλỰ������������ֵ���������Ƿ����� nextval ���ء�
����һ����������������������ִ�е� setval �����ᱻ�����Ựע���ֱ�������ù����ǻ������ֵ��
����һ���� serial �ĵ������У���101��ʼ��
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;