| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Fast Forward | Next | |
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE
table_name
[ (
column_name
[, ...] ) ]
[ WITH (
storage_parameter
[=
value
] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
[ TABLESPACE
tablespace
]
AS
query
CREATE TABLE AS´Â Å×À̺íÀ» ÀÛ¼ºÇØ,SELECT Ä¿¸àµå¿¡ ÀÇÇØ »êÃâµÈ µ¥ÀÌÅ͸¦ ±× Å×ÀÌºí¿¡ °Ý³³ÇÕ´Ï´Ù. Å×À̺íÀÇ ¿Àº,SELECTÀÇ Ãâ·Â¿¿¡ °áºÎµÈ À̸§°ú µ¥ÀÌÅÍÇüÀ» °¡Áý´Ï´Ù(´Ù¸¸, »õ·Î¿î ¿¸íÀ» ¸í½ÃÇÑ ¸®½ºÆ®¸¦ °Ç³×ÁÖ¸é, ÀÌ ¿¸íÀ» ¿À¹ö¶óÀ̵å ÇÒ ¼ö ÀÖ½À´Ï´Ù).
CREATE TABLE AS´Â ºäÀÇ »ý¼º°ú À¯»çÇÕ´Ï´Ù¸¸, ½ÇÁ¦·Î´Â ¿ÏÀüÈ÷ ´Ù¸¨´Ï´Ù. CREATE TABLE AS´Â »õ·Î¿î Å×À̺íÀ» »ý¼ºÇØ, »õ·Î¿î Å×À̺íÀÇ ³»¿ëÀ» ÃʱâÈÇϱâ À§Çؼ ÇÑ ¹ø¸¸ Äõ¸®¸¦ Æò°¡ÇÕ´Ï´Ù. ±× ÀÌÈÄ¿¡ ÇàÇØÁø, Äõ¸®ÀÇ ¿øÅ×ÀÌºí¿¡ ´ëÇÑ º¯°æÀº, »õ·Î¿î Å×ÀÌºí¿¡´Â ¹Ý¿µµÇÁö ¾Ê½À´Ï´Ù. ¹Ý´ë·Î, ºä´Â Äõ¸®°¡ ÇàÇØÁú ¶§¸¶´Ù, Á¤ÀǵÈSELECT¹®À» ÀçÆò°¡ÇÕ´Ï´Ù.
ȣȯ¼ºÀ» º¸°ü À¯ÁöÇϱâ À§ÇØ, ¹«½ÃµË´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº CREATE TABLE À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
ÁöÁ¤µÇ¾úÀ» °æ¿ì, Å×À̺íÀº ÀϽà Å×À̺í·Î¼ »ý¼ºµË´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº CREATE TABLE À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
»ý¼ºÇÏ´Â Å×À̺íÀÇ À̸§(°ËÁõÀ» °ÅÄ£ ½ºÅ°¸¶)ÀÔ´Ï´Ù.
»õ·Î¿î Å×À̺íÀÇ ¿ÀÇ À̸§ÀÔ´Ï´Ù. ¿¸íÀÌ ÁöÁ¤µÇÁö ¾ÊÀº °æ¿ì´Â, Äõ¸®ÀÇ Ãâ·Â¿¸íÀ» ÀÌ¿ëÇÕ´Ï´Ù. EXECUTEÄ¿¸àµå¸¦ ½ÇÇàÇØ Å×À̺íÀ» »ý¼ºÇÏ´Â °æ¿ì´Â, ¿¸íÀÇ ¸®½ºÆ®¸¦ ÁöÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù.
ÀÌ ÀýÀº, »õ·Î¿î Å×À̺í¿ëÀÇ »ý·« °¡´ÉÇÑ °Ý³³ ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ÀúÀå(Storage) ÆÄ¶ó¹ÌÅÍ À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä. WITH¿¡´Â,OIDS=TRUE(ȤÀº OIDS)¸¦ Æ÷ÇÔÇÏ¿©, »õ·Î¿î Å×À̺íÀÇ ÇàÀ» Çà¿¡ ÇÒ´çÇÒ ¼ö ÀÖ¾ú´ø OID(¿ÀºêÁ§Æ® ½Äº°ÀÚ)°¡ ÀÖ¾î¾ß ÇÔÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ ,OIDS=FALSE¸¦ Æ÷ÇÔÇÏ¿©, »õ·Î¿î Å×À̺íÀÇ Çà¿¡ OID°¡ ¾ø¾î¾ß ÇÔÀ» ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â CREATE TABLE À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
À̰͵éÀº ¿À·¡µÈ ±¸¹®À¸·Î, °¢°¢WITH (OIDS)¿ÍWITH (OIDS=FALSE)¿Í °°½À´Ï´Ù. OIDS¿Í ÀúÀåÀåÄ¡ ¸Å°³º¯¼öÀÇ ¼³Á¤ÀÇ ¾çÂÊ ¸ðµÎ¸¦ ÁöÁ¤ÇÏ°í ½ÍÀº °æ¿ì, »ó±âÀÇWITH ( ... )±¸¹®À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. »ó±â ±¸¹®À» Âü°íÇϼ¼¿ä.
Æ®·£Àè¼Ç ºí·ÏÀÇ Á¾·á½Ã, Àӽà Å×À̺íÀÇ µ¿ÀÛÀº ON COMMIT¸¦ »ç¿ëÇÏ¿© Á¦¾îÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌÇÏÀÇ 3°³ÀÇ ¿É¼ÇÀÌ ÀÖ½À´Ï´Ù.
Æ®·£Àè¼ÇÀÇ Á¾·á½Ã¿¡ Ưº°ÇÑ Ã³¸®´Â ÇàÇØÁöÁö ¾Ê½À´Ï´Ù. À̰ÍÀÌ µðÆúÆ® µ¿ÀÛÀÔ´Ï´Ù.
°¢ Æ®·£Àè¼Ç ºí·ÏÀÇ Á¾·á½Ã¿¡, Àӽà Å×À̺íÀÇ ¸ðµç ÇàÀÌ »èÁ¦µË´Ï´Ù. º»·¡, °¢ Ä¿¹ÔÀÌ ½ÇÇàµÉ ½Ã¿¡, ÀÚµ¿ÀûÀ¸·Î TRUNCATE ÀÌ ÇàÇØÁý´Ï´Ù.
ÇöÀçÀÇ Æ®·£Àè¼Ç ºí·ÏÀÇ Á¾·á½Ã¿¡ Àӽà Å×À̺íÀº »èÁ¦µË´Ï´Ù.
tablespace ´Â, »õ·Î¿î Å×À̺íÀÇ ÀÛ¼ºÃ³°¡ µÇ´Â Å×ÀÌºí½ºÆäÀ̽º¸íÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ÁöÁ¤ÀÌ µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì,default_tablespace¸¦ »ç¿ëÇϰųª ȤÀº default_tablespace¿¡ ¹®ÀÚ¿ÀÌ ¾ø´Â °æ¿ì, µ¥ÀÌÅͺ£À̽ºÀÇ µðÆúÆ® Å×ÀÌºí½ºÆäÀ̽º¸¦ »ç¿ëÇÕ´Ï´Ù.
SELECT , ¶Ç´Â VALUES command, ¹Ì¸® ÁغñµÈSELECT¶Ç´ÂVALUESÄõ¸®¸¦ ½ÇÇàÇÏ´Â EXECUTE ÀÔ´Ï´Ù.
ÀÌ Ä¿¸àµå´Â, SELECT INTO °ú À¯»çÇÑ ±â´ÉÀ» °¡Áý´Ï´Ù¸¸,SELECT INTO±¸¹®ÀÇ ´Ù¸¥ »ç¿ë ¹æ¹ý°ú È¥¶õÇÒ °¡´É¼ºÀÌ Àû±â ¶§¹®¿¡, À̰ÍÀ» »ç¿ëÇÏ´Â °ÍÀ» ¼±È£ÇÕ´Ï´Ù. °Ô´Ù°¡CREATE TABLE AS´Â,SELECT INTO°¡ Á¦°øÇÏ´Â ±â´ÉÀÇ ½´ÆÛ ¼¼Æ®¸¦ Á¦°øÇÕ´Ï´Ù.
PostgreSQL 8.0 Àü¿¡´Â, CREATE TABLE AS°¡ »ý¼ºÇÏ´Â Å×ÀÌºí¿¡´Â, Ç×»ó OID°¡ Æ÷ÇԵǾî ÀÖ¾ú½À´Ï´Ù. PostgreSQL 8.0¿¡¼´Â, »ç¿ëÀÚ°¡ ¸í½ÃÀûÀ¸·ÎCREATE TABLE ASÄ¿¸àµåÀÇ °á°ú¿¡ OID¸¦ Æ÷ÇÔÇÒÁö ¾î¶³Áö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù. OIDÀÇ À¯¹«¸¦ ¸í½ÃÇϰí ÀÖÁö ¾Ê´Â °æ¿ì,default_with_oidsȯ°æ¼³Á¤ º¯¼ö°¡ »ç¿ëµË´Ï´Ù. PostgreSQL 8.1¿¡¼, ȯ°æ¼³Á¤ º¯¼öÀÇ µðÆúÆ®°¡ falseÀ̹ǷÎ, µðÆúÆ® µ¿ÀÛÀº 8.0 ÀÌÀüÀÇ ¸±¸®½º¿Í ´Ù¸¨´Ï´Ù. CREATE TABLE AS°¡ »ý¼ºÇÏ´Â Å×ÀÌºí¿¡¼ OID°¡ ÇÊ¿äÇÑ ¾îÇø®ÄÉÀ̼ǿ¡¼´Â, È®½ÇÈ÷ ÀûÀýÇÑ µ¿ÀÛÀ» ½Ã۱â À§ÇØ ¸í½ÃÀûÀ¸·ÎWITH (OIDS)¸¦ ºÎ¿©ÇØ¾ß ÇÕ´Ï´Ù.
filmsÀÇ ÃÖ±ÙÀÇ Ç׸ñ¸¸À¸·Î ±¸¼ºµÇ´Â, »õ·Î¿îfilms_recentÅ×À̺íÀ» »ý¼ºÇÕ´Ï´Ù.
CREATE TABLE films_recent AS SELECT * FROM films WHERE date_prod >= '2002-01-01';
ÁغñµÈ ¹®ÀåÀ» »ç¿ëÇØ,filmsÅ×ÀÌºí¿¡¼ ÃÖ±ÙÀÇ Ç׸ñ¸¸À¸·ÎºÎÅÍ ±¸¼ºµÇ´Â films_recent»õ·Î¿î Àӽà Å×À̺íÀ» ÀÛ¼ºÇÕ´Ï´Ù. ÀÌ »õ·Î¿î Å×À̺íÀº OID¸¦ °¡Á®, Ä¿¹Ô ½ÇÇà ½Ã, »èÁ¦µË´Ï´Ù.
PREPARE recentfilms(date) AS
SELECT * FROM films WHERE date_prod > $1;
CREATE TEMP TABLE films_recent WITH (OIDS) ON COMMIT DROP AS
EXECUTE recentfilms('2002-01-01');
´ÙÀ½ÀÇ ¿¹¿Ü¿Í ÇÔ²²,CREATE TABLE AS´Â Ç¥ÁØSQL¿¡ ÁذÅÇÕ´Ï´Ù.
Ç¥ÁØ¿¡¼´Â ¼ºêÄõ¸®ÀÇ ÀýÀ» °ýÈ£·Î µÑ·¯½Ò Çʿ䰡 ÀÖ½À´Ï´Ù¸¸,PostgreSQL¿¡¼´Â ÀÌ °ýÈ£´Â »ý·« °¡´ÉÇÕ´Ï´Ù.
Ç¥ÁØ¿¡¼´ÂWITH [ NO ] DATA±¸¸¦ Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù¸¸, ÇöÀçÀÇ PostgreSQL¿¡¼´Â ½ÇÇàµÇ°í ÀÖÁö ¾Ê½À´Ï´Ù. PostgreSQLÀÇ µ¿ÀÛÀº Ç¥ÁØ¿¡ ÀÖ¾î¼ÀÇWITH DATAÀÇ °æ¿ì¿Í °°½À´Ï´Ù. WITH NO DATA´Â, Äõ¸®¿¡LIMIT 0À» Ãß°¡ÇÏ´Â °ÍÀ¸·Î ½Ã¹Ä·¹ÀÌÆ® ÇÒ ¼ö ÀÖ½À´Ï´Ù.
PostgreSQLÀÇ Àӽà Å×À̺íÀÇ Ãë±ÞÀº Ç¥Áذú´Â ´Ù¸¨´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº CREATE TABLE À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
WITHÀýÀº PostgreSQLÀÇ È®ÀåÀÔ´Ï´Ù. ½ºÅ丮Áö ¸Å°³º¯¼öµµ OIDµµ Ç¥ÁØ¿¡´Â ¾ø½À´Ï´Ù.
PostgreSQLÀÇ Å×ÀÌºí½ºÆäÀ̽º¶ó°í ÇÏ´Â °³³äÀº Ç¥ÁØ¿¡ ¾ø½À´Ï´Ù. µû¶ó¼,TABLESPACEÀýÀº È®ÀåÀÔ´Ï´Ù.