| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Fast Forward | Next | |
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 ÁÖ¼Ò ¿À» Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù. °¢°¢ÀÇ Å×À̺íÀÇ Á¦¾àÀ» °³º°ÀûÀ¸·Î ¼³Á¤Çϱ⠺¸´Ù´Â µµ¸ÞÀÎÀ» Á¤ÀÇ Çϼ¼¿ä.
»ý¼ºµÇ´Â µµ¸ÞÀÎÀÇ À̸§(¼±ÅÃÀûÀ¸·Î ÇÑÁ¤µÈ ½ºÅ°¸¶)ÀÔ´Ï´Ù.
µµ¸ÞÀÎÀÇ ±âÃʰ¡ µÇ´Â µ¥ÀÌÅÍ Å¸ÀÔ ÀÔ´Ï´Ù. ¹è¿ ÁöÁ¤ÀÚ°¡ Æ÷ÇÔ µÉ ¼ö ÀÖ½À´Ï´Ù.
DEFAULTÀýÀº µµ¸ÞÀÎ µ¥ÀÌÅÍ Å¸ÀÔÀÇ ¿¿¡ ´ëÇÑ µðÆúÆ® °ªÀ» ÁöÁ¤ÇÕ´Ï´Ù. °ªÀº ¾î¶°ÇÑ ¹«º¯¼ö½ÄÀÌ¶óµµ µÉ ¼ö ÀÖ½À´Ï´Ù. (±×·¯³ª ¼ºêÄõ¸®´Â Çã¿ëµÇÁö ¾Ê½À´Ï´Ù.) µðÆúÆ®½ÄÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀº µµ¸ÞÀÎÀÇ µ¥ÀÌÅÍ Å¸ÀÔ°ú ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù. µðÆúÆ® °ªÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é, µðÆúÆ® °ªÀº null°ªÀÌ µË´Ï´Ù.
µðÆúÆ®½ÄÀº ¿¿¡ ´ëÇØ °ªÀ» ÁöÁ¤ÇÏÁö ¾Ê´Â »ðÀÔ ¿¬»ê¿¡¼ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. µðÆúÆ®°ªÀÌ Æ¯Á¤ÇÑ ¿¿¡ ´ëÇØ Á¤ÀÇ µÇ´Â °æ¿ì, µµ¸ÞÀΰú °ü·ÃµÈ µðÆúÆ® °ªÀ» ¿À¹ö¶óÀ̵å ÇÕ´Ï´Ù. ¹Ý´ë·Î, µµ¸ÞÀÎ µðÆúÆ®´Â ±âº»ÀÌ µÇ´Â µ¥ÀÌÅÍ Å¸ÀÔ°ú °ü·ÃµÈ µ¥ÀÌÅÍ °ªÀ» ¿À¹ö¶óÀ̵å ÇÕ´Ï´Ù.
»ý·« °¡´ÉÇÑ Á¦¾àÀÇ À̸§ÀÔ´Ï´Ù. ÁöÁ¤µÇÁö ¾ÊÀ¸¸é, ½Ã½ºÅÛÀº À̸§À» »ý¼ºÇÕ´Ï´Ù.
µµ¸ÞÀÎÀÇ °ªÀº null°ªÀÌ Çã¿ëµÉ ¼ö ¾ø½À´Ï´Ù.
µµ¸ÞÀÎÀÇ °ªÀº null°ªÀÌ Çã¿ëµÉ ¼ö ¾ø½À´Ï´Ù. ÀÌ´Â µðÆúÆ® ÀÔ´Ï´Ù.
ÀÌ ÀýÀº ¿ÀÁ÷ ºñÇ¥ÁØ SQL µ¥ÀÌÅͺ£À̽º¿Í ȣȯ¼ºÀ» À§ÇØ °èȹµÇ¾ú½À´Ï´Ù. »õ·Î¿î ¾îÇø®ÄÉÀ̼ǿ¡¼ ÀÌ ÀýÀ» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
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
);