CREATE DOMAIN

Name

CREATE DOMAIN -- »õ·Î¿î µµ¸ÞÀÎÀ» Á¤ÀÇÇÕ´Ï´Ù

Synopsis

CREATE DOMAIN 
name
 [ AS ] 
data_type

    [ DEFAULT 
expression
 ]
    [ 
constraint
 [ ... ] ]

where 
constraint
 is:

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

¼³¸í

CREATE DOMAIN ´Â »õ·Î¿î µµ¸ÞÀÎÀ» »ý¼ºÇÕ´Ï´Ù. µµ¸ÞÀÎÀº º»ÁúÀûÀ¸·Î ÀÓ½ÃÀÇ Á¦¾à(Çã¿ëµÈ ÀÏ·ÃÀÇ °ª¿¡ ´ëÇÑ Á¦¾à)À» Áö´Ñ µ¥ÀÌÅÍ Å¸ÀÔ ÀÔ´Ï´Ù. µµ¸ÞÀÎÀ» Á¤ÀÇÇÏ´Â »ç¿ëÀÚ´Â µµ¸ÞÀÎÀÇ ¼ÒÀ¯ÁÖ°¡ µË´Ï´Ù.

½ºÅ°¸¶ ¸íÀÌ ÁÖ¾îÁö´Â °æ¿ì,(¿¹¸¦ µé¾î, CREATE DOMAIN myschema.mydomain ...) µµ¸ÞÀÎÀº ±× ÁöÁ¤µÈ ½ºÅ°¸¶ ¾È¿¡¼­ »ý¼º µË´Ï´Ù. ½ºÅ°¸¶ ¸íÀÌ ÁÖ¾îÁöÁö ¾ÊÀº °æ¿ì, µµ¸ÞÀÎÀº ÇöÀçÀÇ ½ºÅ°¸¶¿¡¼­ »ý¼º µË´Ï´Ù. µµ¸ÞÀÎ ¸íÀº, ½ºÅ°¸¶¿¡ Á¸ÀçÇϴ ŸÀÔ°ú µµ¸ÞÀÎµé »çÀÌ¿¡¼­ À¯ÀÏÇÑ °Í À̾î¾ß ÇÕ´Ï´Ù.

µµ¸ÞÀÎÀº ÇÊµå »ó¿¡ ÀÖ´Â °øÅëÀÇ Á¦¾àÀ» À¯ÁöÇϱâ À§ÇØ, 1°³ÀÇ Àå¼Ò·Î Ãß»óÈ­ ÇÏ´Â µ¥¿¡ À¯¿ëÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ¿©·¯ °³ÀÇ Å×À̺íÀÌ ÁÖ¼Ò ±¸¹®À» °ËÁõÇϱâ À§ÇØ ¸ðµÎ °°Àº CHECK Á¦¾àÀ» ¿ä±¸Çϸ鼭, email ÁÖ¼Ò ¿­À» Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. °¢°¢ÀÇ Å×À̺íÀÇ Á¦¾àÀ» °³º°ÀûÀ¸·Î ¼³Á¤Çϱ⠺¸´Ù´Â µµ¸ÞÀÎÀ» Á¤ÀÇ Çϼ¼¿ä.

ÆÄ¶ó¹ÌÅÍ

name

»ý¼ºµÇ´Â µµ¸ÞÀÎÀÇ À̸§(¼±ÅÃÀûÀ¸·Î ÇÑÁ¤µÈ ½ºÅ°¸¶)ÀÔ´Ï´Ù.

data_type

µµ¸ÞÀÎÀÇ ±âÃʰ¡ µÇ´Â µ¥ÀÌÅÍ Å¸ÀÔ ÀÔ´Ï´Ù. ¹è¿­ ÁöÁ¤ÀÚ°¡ Æ÷ÇÔ µÉ ¼ö ÀÖ½À´Ï´Ù.

DEFAULT expression

DEFAULTÀýÀº µµ¸ÞÀÎ µ¥ÀÌÅÍ Å¸ÀÔÀÇ ¿­¿¡ ´ëÇÑ µðÆúÆ® °ªÀ» ÁöÁ¤ÇÕ´Ï´Ù. °ªÀº ¾î¶°ÇÑ ¹«º¯¼ö½ÄÀÌ¶óµµ µÉ ¼ö ÀÖ½À´Ï´Ù. (±×·¯³ª ¼­ºêÄõ¸®´Â Çã¿ëµÇÁö ¾Ê½À´Ï´Ù.) µðÆúÆ®½ÄÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀº µµ¸ÞÀÎÀÇ µ¥ÀÌÅÍ Å¸ÀÔ°ú ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù. µðÆúÆ® °ªÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é, µðÆúÆ® °ªÀº null°ªÀÌ µË´Ï´Ù.

µðÆúÆ®½ÄÀº ¿­¿¡ ´ëÇØ °ªÀ» ÁöÁ¤ÇÏÁö ¾Ê´Â »ðÀÔ ¿¬»ê¿¡¼­ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. µðÆúÆ®°ªÀÌ Æ¯Á¤ÇÑ ¿­¿¡ ´ëÇØ Á¤ÀÇ µÇ´Â °æ¿ì, µµ¸ÞÀΰú °ü·ÃµÈ µðÆúÆ® °ªÀ» ¿À¹ö¶óÀ̵å ÇÕ´Ï´Ù. ¹Ý´ë·Î, µµ¸ÞÀÎ µðÆúÆ®´Â ±âº»ÀÌ µÇ´Â µ¥ÀÌÅÍ Å¸ÀÔ°ú °ü·ÃµÈ µ¥ÀÌÅÍ °ªÀ» ¿À¹ö¶óÀ̵å ÇÕ´Ï´Ù.

CONSTRAINT constraint_name

»ý·« °¡´ÉÇÑ Á¦¾àÀÇ À̸§ÀÔ´Ï´Ù. ÁöÁ¤µÇÁö ¾ÊÀ¸¸é, ½Ã½ºÅÛÀº À̸§À» »ý¼ºÇÕ´Ï´Ù.

NOT NULL

µµ¸ÞÀÎÀÇ °ªÀº null°ªÀÌ Çã¿ëµÉ ¼ö ¾ø½À´Ï´Ù.

NULL

µµ¸ÞÀÎÀÇ °ªÀº null°ªÀÌ Çã¿ëµÉ ¼ö ¾ø½À´Ï´Ù. ÀÌ´Â µðÆúÆ® ÀÔ´Ï´Ù.

ÀÌ ÀýÀº ¿ÀÁ÷ ºñÇ¥ÁØ SQL µ¥ÀÌÅͺ£À̽º¿Í ȣȯ¼ºÀ» À§ÇØ °èȹµÇ¾ú½À´Ï´Ù. »õ·Î¿î ¾îÇø®ÄÉÀ̼ǿ¡¼­ ÀÌ ÀýÀ» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

CHECK ( expression )

CHECKÀýÀº ¹«°á¼º Á¦¾à ¶Ç´Â µµ¸ÞÀÎ °ªÀÌ ¸¸Á·µÇ¾î¾ß ÇÏ´Â Å×½ºÆ®¸¦ ÁöÁ¤ÇÕ´Ï´Ù. °¢°¢ÀÇ Á¦¾àÀº BooleanÇü °á°ú¸¦ »ý¼ºÇÏ´Â ½ÄÀ̾î¾ß ÇÕ´Ï´Ù. Å×½ºÆ® µÇ´Â °ªÀ» ÂüÁ¶Çϱâ À§Çؼ­, Ű¿öµå VALUE¸¦ »ç¿ë ÇØ¾ß ÇÕ´Ï´Ù.

ÇöÀç´Â, CHECK½ÄÀº ¼­ºêÄõ¸®¸¦ Æ÷ÇÔÇϰųª VALUEÀÌ¿ÜÀÇ º¯¼ö¸¦ ÂüÁ¶ÇÒ ¼ö ¾ø½À´Ï´Ù.

¿¹

ÀÌ ¿¹¿¡¼­´Â, us_postal_codeÀ̶ó´Â µ¥ÀÌÅÍ Å¸ÀÔÀ» »ý¼ºÇϰí Å×À̺í Á¤ÀÇ ¾È¿¡ Àִ ŸÀÔÀ» »ç¿ë ÇÕ´Ï´Ù. Á¤±Ô½Ä Å×½ºÆ®´Â À¯È¿ÇÑ US¿ìÆí Äڵ尰ÀÌ º¸ÀÌ´Â °ªÀ» °ËÁõÇϱâ À§ÇØ »ç¿ëµË´Ï´Ù.

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 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