PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
Prev | Fast Backward | Fast Forward | Next |
ALTER TABLE [ ONLY ] name [ * ] action [, ... ] ALTER TABLE [ ONLY ] name [ * ] RENAME [ COLUMN ] column TO new_column ALTER TABLE name RENAME TO new_name ���� action ������֮һ�� ADD [ COLUMN ] column type [ column_constraint [ ... ] ] DROP [ COLUMN ] column [ RESTRICT | CASCADE ] ALTER [ COLUMN ] column TYPE type [ USING expression ] ALTER [ COLUMN ] column SET DEFAULT expression ALTER [ COLUMN ] column DROP DEFAULT ALTER [ COLUMN ] column { SET | DROP } NOT NULL ALTER [ COLUMN ] column SET STATISTICS integer ALTER [ COLUMN ] column SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN } ADD table_constraint DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ] CLUSTER ON index_name SET WITHOUT CLUSTER SET WITHOUT OIDS OWNER TO new_owner SET TABLESPACE tablespace_name
ALTER TABLE ���һ���ִ��Ķ��塣���кü�������ʽ��
������ʽ�ú� CREATE TABLE ��һ��������������һ���µ��ֶΡ�
������ʽ�ӱ���ɾ��һ���ֶΡ���ע�⣬������ֶ���ص������ͱ�Լ��Ҳ�ᱻ�Զ�ɾ���� ����κα�֮��Ķ�������������ֶΣ� �����˵ CASCADE�����磬����ο�����ͼ�ȵȡ�
�������ı����һ���ֶε����͡����ֶ��漰�������ͼı�Լ�������Զ���ת��Ϊʹ���µ��ֶ����ͣ� ���������·�������ṩ�ı��ʽ����ѡ�� USING �Ӿ�������δӾɵ��ֶ�ֵ������µ��ֶ�ֵ�� ���ʡ�ԣ���ôȱʡ��ת�����ǴӾ������������͵ĸ�ֵת��������Ӿ��������͵�������û���������߸�ֵ��ת���� ��ô�����ṩһ�� USING��
������ʽΪһ���ֶ����û���ɾ��ȱʡֵ����ע��ȱʡֵֻӦ�������� INSERT ��� ���Dz��ᵼ���Ѿ��ڱ��е��е���ֵ���ġ�����Ҳ����Ϊ��ͼ����ȱʡ�� ���ʱ������������ͼ�� ON INSERT ����Ӧ��֮ǰ���� INSERT �����ȥ�ġ�
��Щ��ʽ��һ���ֶ��Ƿ���Ϊ���� NULL ֵ�����Ǿܾ� NULL ֵ�� ��������ֶ��а����ǿ�ֵ����ô��ֻ���� SET NOT NULL��
�����ʽΪ���� ANALYZE ��������ÿ�ֶε�ͳ���ռ�Ŀ�꣨default_statistics_target���� Ŀ��ķ�Χ������ 0 �� 1000 ֮�����ã����⣬��������Ϊ -1 ���ʾ���»ָ���ʹ��ϵͳȱʡ��ͳ��Ŀ�ꡣ �й� PostgreSQL ��ѯ�滮��ʹ�õ�ͳ����Ϣ�ĸ�����Ϣ�� ��ο�Section 13.2��
������ʽΪһ���ֶ����ô洢ģʽ��������ÿ�������ֶ����������滹�DZ�����һ�������ı���Լ������Ƿ�Ҫѹ���� PLAIN �������ڶ�������ֵ������ integer�������������ģ���ѹ���ġ� MAIN ������������ѹ�������ݡ� EXTERNAL �����ⲿ���棬��ѹ�������ݣ� �� EXTENDED �����ⲿ��ѹ�����ݡ� EXTENDED �Ǵ����֧�ַ� PLAIN �洢������֮ȱʡ�� ʹ�� EXTERNAL ������ text �ֶ��ϵ����ִ��������죬 �����Ĵ����������˴洢�ռ䡣 ��ע�� SET STORAGE �������ı���ϵ��κζ����� ֻ�����ý����ı����ʱ������ʹ�õIJ��ԡ����� Section 49.2 ��ȡ������Ϣ��
�����ʽ��������һ���µ�Լ�����õ���� CREATE TABLE һ����
�����ʽɾ��һ�����ϵ�Լ���� Ŀǰ���ڱ��ϵ�Լ����Ҫ����Ψһ�����֣���˿����ж��Լ��ƥ�����������֡� ����������Լ��������ɾ����
������ʽΪ������ CLUSTER ѡ��ѡ��ȱʡ��������ʵ���ϲ������¶Ա��ء�
������ʽ�ӱ���ɾ������ʹ�õ� CLUSTER ������ ������Ӱ�콫����Щû�����������Ľ��ز�����
������ʽ�ӱ���ɾ�� oid ϵͳ�ֶΡ� ���� DROP COLUMN oid RESTRICT ��ȫ��ͬ�� ֻ��������������Ѿ�û�� oid �ֶ��ˣ���ô�����ᱨ�����
��ע�⣬������ij�� ALTER TABLE �ı��ֿ�����ɾ���� OID ֮���ٰ����ǻָ�������
RENAME ��ʽ�ı�һ��������֣�������һ��������һ�����У�����һ����ͼ�������DZ���һ�������ֶε����֡� ���Դ洢������û���κ�Ӱ�졣
�����ʽ�ı�����������л�����ͼ��������Ϊָ�������ߡ�
������ʽ�ѱ�ı�ռ���Ϊָ���ı�ռ䲢�Ұ������ص������ļ��ƶ����µı�ռ�ȥ�� ����ڱ��������������ƶ����������ǿ���ͨ������� SET TABLESPACE �����ƶ������� CREATE TABLESPACE��
RENAME ��ʽ�ı�һ��������һ�����������У�������ͼ�������֣� �����DZ��ж����ֶε����֡����ǶԴ洢������û��Ӱ�졣
���� RENAME ֮�����ж���������������һ������ĵ��б���ͬʱʩ�á� ���磬���ǿ�����һ�����������Ӽ����ֶκ�/���ļ����ֶε����͡� ���ڴ����ô���ر����ã���Ϊֻ��Ҫ�Ըñ���һ�δ���
Ҫʹ�� ALTER TABLE�������ӵ�иñ� ���� ALTER TABLE OWNER ֮�⣬��ֻ���ɳ����û�ִ�С�
��ͼ���ĵ��ִ��������ģʽ���Σ������ơ� ��������� ONLY����ֻ���ĸñ� ���û������ ONLY����ñ������к��������У��������¡� ���ǿ����ڱ����ֺ��渽��һ�� * ��ʾ�������ɨ�裬������Ŀǰ�İ汾�����ȱʡ��Ϊ�� ����7.1֮ǰ�İ汾��ONLY ��ȱʡ����Ϊ����ȱʡ����ͨ���ı�����ѡ�� sql_inheritance ���ı䡣
�ִ���µ��ֶ����ơ�
�ִ��ֶε������ơ�
��������ơ�
���ֶε����ͣ������ִ��ֶε������͡�
����µ�Լ�����塣
Ҫɾ��������Լ�������֡�
Ҫ���Ϊ���صı�������������֡�
�Զ�ɾ�������ڱ������ֶλ���Լ���Ķ����磬���ø��ֶε���ͼ����
����ֶλ���Լ�������κ������Ķ�����ܾ�ɾ�����ֶΡ� ����ȱʡ��Ϊ��
�ñ���������ߵ��û�����
�����Ҫ�ƶ����ı�ռ����֡�
COLUMN �ؼ����Ƕ���ģ�����ʡ�ԡ�
����� ADD COLUMN ����һ���ֶΣ���ô���б��������ж���ʼ��Ϊ���ֶε�ȱʡֵ �����û������ DEFAULT �Ӿ䣬��ô���� NULL����
��һ���ǿ�ȱʡ����һ���ֶλ����Ǹı�һ���ֶε��������ͻ�Ҫ�����������д�� ���ڴ����˵������������ܻỨ�ܳ�ʱ�䣻����������ʱ��Ҫ�����Ĵ��̿ռ䡣
����һ�� CHECK ���� NOT NULL Լ��Ҫ��ɨ��ñ��Ա�֤���е��и���Լ��Ҫ��
�ṩ��һ�� ALTER TABLE ������������ĵ���Ҫԭ����ԭ����Ҫ�ĶԱ�Ķ��ɨ�����д������ϳ�һ���غϡ�
DROP COLUMN ������������ϰ��ֶ�ɾ���� ��ֻ�Ǽذ������Ϊ SQL �����в��ɼ��ġ����Ըñ�IJ�����½��ڸ��ֶδ洢һ�� NULL�� ��ˣ�ɾ��һ���ֶ��Ǻܿ�ģ���������������������ı��ڴ����ϵĴ�С����Ϊ��ɾ���˵��ֶ�ռ�ݵĿռ仹û�л��ա� ��Щ�ռ佫�������е��еĸ��¶��õ����ա�
ALTER TYPE Ҫ����д�������������ʱ����һ���ŵ㣬 ��Ϊ��д�Ĺ����������κα��е�û�õĿռ䡣���磬Ҫ�����̻��ձ�һ���Ѿ�ɾ�����ֶ�ռ�ݵĿռ䣬 ���ķ�����
ALTER TABLE table ALTER COLUMN anycol TYPE anytype;
���� anycol ���κ��ڱ��л����ڵ��ֶΣ��� anytype �Ǻ��ֶε�ԭ����һ�������͡� �����Ľ�����ڱ���û���κοɼ�������ı仯�������������ǿ����д��������ɾ���˲���ʹ�õ����ݡ�
ALTER TYPE �� USING ѡ��ʵ���Ͽ��������漰���о�ֵ���κα��ʽ�� Ҳ����˵�����������ó������ڱ�ת�����ֶ�֮���������ֶΡ����������ǾͿ����� ALTER TYPE ����dz��ձ��Ե�ת������Ϊ�������ԣ�USING ���ʽ��û��ʩ���ڸ��ֶε�ȱʡֵ������еĻ����� ������ܲ���ȱʡ���ʽҪ��ij������ʽ�� �����ζ������Ӿ����͵����������û���������߸�ֵת���Ļ��� ��ô��ʹ���� USING �Ӿ������£� ALTER TYPE Ҳ��������ȱʡֵת�����µ����͡� ����������£�����Ӧ���� DROP DEFAULT ��ɾ��ȱʡ�� ִ�� ALTER TYPE��Ȼ��ʹ�� SET DEFAULT ����һ�����ʵ���ȱʡ�� ���ƵĿ���Ҳ�������漰���ֶε�������Լ����
��������κκ������ô������ں��������ͬ�����ĵĻ��� �Ͳ������ڸ��������ӣ�������������һ���ֶε����ͣ�Ҳ����˵�� ALTER TABLE ONLY�����ܾ��������ͱ�֤�˺���������к���ƥ����ֶΡ�
һ���ݹ�DROP COLUMN ������ֻ���ں���������κ����������м̳и��ֶβ��Ҵ���û�ж���������ֶε�ʱ�����ɾ��һ���������ֶΡ� һ���ǵݹ��DROP COLUMN��Ҳ���ǣ�ALTER TABLE ONLY ... DROP COLUMN����������ɾ���κκ���ֶΣ� ���ǰ����DZ��Ϊ��������ģ������Ǽ̳еġ�
���������ϵͳ��ṹ���κβ��֡�
��ο� CREATE TABLE ���ֻ�ȡ������Ч������������ Chapter 5 ���и����йؼ̳е���Ϣ��
���������һ�� varchar �У�
ALTER TABLE distributors ADD COLUMN address varchar(30);
�ӱ���ɾ��һ���ֶΣ�
ALTER TABLE distributors DROP COLUMN address RESTRICT;
��һ�������������������ֶε����ͣ�
ALTER TABLE distributors ALTER COLUMN address TYPE varchar(80), ALTER COLUMN name TYPE varchar(100);
ʹ��һ�� USING �Ӿ䣬 ��һ������ UNIX ʱ����� integer �ֶ�ת���� timestamp with time zone��
ALTER TABLE foo ALTER COLUMN foo_timestamp TYPE timestamp with time zone USING timestamp with time zone 'epoch' + foo_timestamp * interval '1 second';
���ִ��ֶθ�����
ALTER TABLE distributors RENAME COLUMN address TO city;
�����ִ������֡�
ALTER TABLE distributors RENAME TO suppliers;
��һ���ֶ�����һ���ǿ�Լ����
ALTER TABLE distributors ALTER COLUMN street SET NOT NULL;
��һ���ֶ���ɾ��һ���ǿ�Լ����
ALTER TABLE distributors ALTER COLUMN street DROP NOT NULL;
��һ��������һ�����Լ����
ALTER TABLE distributors ADD CONSTRAINT zipchk CHECK (char_length(zipcode) = 5);
ɾ��һ��������������ӱ�ļ��Լ����
ALTER TABLE distributors DROP CONSTRAINT zipchk;
���������һ�����Լ����
ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES addresses(address) MATCH FULL;
��������һ�������ֶΣ�ΨһԼ����
ALTER TABLE distributors ADD CONSTRAINT dist_id_zipcode_key UNIQUE (dist_id, zipcode);
��һ��������һ���Զ�����������Լ����Ҫע�����һ����ֻ����һ��������
ALTER TABLE distributors ADD PRIMARY KEY (dist_id);
�ѱ��ƶ�������һ����ռ䣺
ALTER TABLE distributors SET TABLESPACE fasttablespace;