CREATE DOMAIN

Name

CREATE DOMAIN -- ����һ������

Synopsis

CREATE DOMAIN name [AS] data_type
    [ DEFAULT default_expr ]
    [ constraint [ ... ] ]

���� constraint �ǡ�

[ CONSTRAINT constraint_name ]
{ NOT NULL | NULL | CHECK (expression)}

����

CREATE DOMAIN ����һ���µ������� ��������û���Ϊ�������ߡ�

�������һ��ģʽ���ƣ����磬CREATE DOMAIN myschema.mydomain ...���� ��ô��������ָ����ģʽ�д����ġ����������ڵ�ǰģʽ�д����� �����ֱ�����������ģʽ�е��������ͺ�����Ψһ��

����Ա������ǰѲ�ͬ��֮��Ĺ������ȡ��һ��λ�ý���ά���� ���磬һ�������ʼ���ַ�ֶο����ڶ������ʹ�ã����еĶ���ͬ�������ԡ� ���ǿ��Զ��岢ʹ��һ���򣬶����Ƿֱ�����ÿ�����Լ����

����

domainname

Ҫ�����������֣�������ģʽ���Σ���

data_type

����²��������͡������԰������������֡�

DEFAULT default_expr

DEFAULT �Ӿ�Ϊ���������͵��ֶ�����һ��ȱʡֵ�� ��ֵ���κβ��������ı��ʽ�����������Ӳ�ѯ���� ȱʡ���ʽ���������ͱ���ƥ������������͡����û������ȱʡֵ�� ��ôȱʡֵ���ǿ�ֵ��

ȱʡ���ʽ�������κβ�Ϊ���ֶ�������ֵ�IJ�������� ���Ϊ�ض����ֶ�������ȱʡֵ����ô�������κκ͸����������ȱʡֵ�� Ȼ�����ȱʡ�����κ����²�����������ص�ȱʡ��

CONSTRAINT constraint_name

һ��Լ���Ŀ�ѡ���ơ����û��������ϵͳ����һ�����֡�

NOT NULL

��������ֵ������Ϊ NULL��

NULL

��������ֵ����Ϊ�ա�����ȱʡ��

����Ӿ�ֻ�����ںͷDZ�׼�� SQL ���ݿ�����á� ���Dz��������µ�Ӧ����ʹ������

CHECK (expression)

CHECK �Ӿ�����������Լ�������Dz��ԣ������ֵ����������ЩҪ�� ÿ��Լ��������һ������һ����������ı��ʽ����Ӧ��ʹ������ VALUE �����ñ����Ե���ֵ��

Ŀǰ��CHECK ���ʽ���ܰ����Ӳ�ѯ��Ҳ�������ó� VALUE ֮��ı�����

����

������Ӵ����� us_postal_code �������Ͳ�����һ��������ʹ���˸����͡� ����ʹ����һ��������ʽ�����Ա�֤��Щ��ֵ��������һ���������������롣

CREATE DOMAIN us_postal_code AS TEXT
CHECK(
   VALUE ~ '^\d{5}$'
OR VALUE ~ '^\d{5}-\d{4}$'
);

CREATE TABLE us_snail_addy (
  address_id SERIAL NOT NULL PRIMARY KEY
, street1 TEXT NOT NULL
, street2 TEXT
, street3 TEXT
, city TEXT NOT NULL
, postal us_postal_code NOT NULL
);

������

CREATE DOMAIN ������� SQL ��׼��

�ּ�

ALTER DOMAIN, DROP DOMAIN