COPY

Name

COPY -- ÆÄÀϰú Å×À̺íÀÇ »çÀÌ¿¡ µ¥ÀÌÅ͸¦ º¹»çÇÑ´Ù

Synopsis

COPY 
tablename
 [ ( 
column
 [, ...] ) ]
    FROM { '
filename
' | STDIN }
    [ [ WITH ] 
          [ BINARY ]
          [ OIDS ]
          [ DELIMITER [ AS ] '
delimiter
' ]
          [ NULL [ AS ] '
null string
' ]
          [ CSV [ HEADER ]
                [ QUOTE [ AS ] '
quote
' ] 
                [ ESCAPE [ AS ] '
escape
' ]
                [ FORCE NOT NULL 
column
 [, ...] ]

COPY { 
tablename
 [ ( 
column
 [, ...] ) ] | ( 
query
 ) }
    TO { '
filename
' | STDOUT }
    [ [ WITH ] 
          [ BINARY ]
          [ HEADER ]
          [ OIDS ]
          [ DELIMITER [ AS ] '
delimiter
' ]
          [ NULL [ AS ] '
null string
' ]
          [ CSV [ HEADER ]
                [ QUOTE [ AS ] '
quote
' ] 
                [ ESCAPE [ AS ] '
escape
' ]
                [ FORCE QUOTE 
column
 [, ...] ]

¼³¸í

COPYÄ¿¸àµå´Â,PostgreSQLÀÇ Å×À̺í°ú Ç¥ÁØÀÇ ÆÄÀÏ ½Ã½ºÅÛÀÇ ÆÄÀϰ£¿¡ µ¥ÀÌÅ͸¦ À̵¿ÇÕ´Ï´Ù. COPY TOÄ¿¸àµå´Â Å×À̺íÀÇ ³»¿ëÀ» ÆÄÀÏ ¿¡ º¹»çÇÕ´Ï´Ù. ¶Ç,COPY FROMÄ¿¸àµå´Â, ÆÄÀÏ ·ÎºÎÅÍ Å×À̺í·Î µ¥ÀÌÅ͸¦ º¹»çÇÕ´Ï´Ù(ÀÌ ¶§, ÀÌ¹Ì Å×ÀÌºí¿¡ ÀÖ´Â µ¥ÀÌÅÍ¿¡ º¹»çÇÑ ³»¿ëÀ» Ãß°¡ÇÕ´Ï´Ù). ¶ÇÇÑ,COPY TO¿¡ ÀÇÇØSELECTÄõ¸®ÀÇ °á°ú¸¦ º¹»çÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

¿­ÀÇ ¸®½ºÆ®°¡ ÁöÁ¤µÇ°í ÀÖ´Â °æ¿ì,COPY´Â, ÁöÁ¤µÈ ¿­ ³»¿¡ ÀÖ´Â µ¥ÀÌÅ͸¦ ÆÄÀÏ·Î ¶Ç´Â ÆÄÀϷκÎÅÍ º¹»ç¸¸À» ½ÇÇàÇÕ´Ï´Ù. ¿­¸®½ºÆ®¿¡ Æ÷ÇÔµÇÁö ¾ÊÀº ¿­ÀÌ Å×ÀÌºí ³»¿¡ ÀÖ´Â °æ¿ì,COPY FROM´Â, ±×·¯ÇÑ ¿­¿¡ µðÆúÆ®°ªÀ» »ðÀÔÇÕ´Ï´Ù.

ÆÄÀϸí ÷ºÎÀÇCOPYÄ¿¸àµå´Â,PostgreSQL¼­¹ö¿¡ ´ëÇØ¼­ Á÷Á¢ ÆÄÀÏ¿¡ ÀÐ°í ¾²±â¸¦ Çϵµ·Ï, ½ÇÇàÇÕ´Ï´Ù. ÁöÁ¤ÇÑ ÆÄÀÏÀº ¹Ýµå½Ã ¼­¹ö·ÎºÎÅÍ ¾×¼¼½º ÇØ¾ß ÇÕ´Ï´Ù. ¶Ç, ÆÄÀϸíÀº ¼­¹öÀÇ °üÁ¡¿¡¼­ º» °ÍÀ¸·Î ÁöÁ¤µÇ¾î¾ß ÇÕ´Ï´Ù. STDIN¶Ç´ÂSTDOUT°¡ ÁöÁ¤µÇ¾úÀ» °æ¿ì, µ¥ÀÌÅʹ Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹öÀÇ Á¢¼ÓÀ» ÀÌ¿ëÇÏ¿© Àü¼ÛµË´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ

tablename

±âÁ¸ÀÇ Å×À̺íÀÇ À̸§(°ËÁõÀ» °ÅÄ£ ½ºÅ°¸¶)ÀÔ´Ï´Ù.

column

º¹»çÇÏ´Â ¿­ÀÇ ¸®½ºÆ®ÀÔ´Ï´Ù. À̰ÍÀº »ý·« °¡´ÉÇÕ´Ï´Ù. ¿­ÀÇ ¸®½ºÆ®°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â, Å×À̺íÀÇ ¸ðµç ¿­ÀÌ º¹»çµË´Ï´Ù.

query

ÁöÁ¤ÇÑSELECTÄ¿¸àµå ¶Ç´Â VALUES Ä¿¸àµåÀÇ °á°ú°¡ º¹»çµË´Ï´Ù. Äõ¸®¸¦ °ýÈ£·Î ¹­À» Çʿ䰡 ÀÖ´Ù´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.

filename

ÀÔÃâ·Â ÆÄÀÏÀÇ Àý´ë °æ·Î¸íÀÔ´Ï´Ù. À©µµ¿ìÁî »ç¿ëÀÚÀÇ °æ¿ì, °æ·ÎÀÇ ºÐ¸®±âÈ£·Î¼­ »ç¿ëµÈ ´õºí ¹é½½·¡½Ã ¹× E''¹®ÀÚ¿­À» »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

STDIN

ÀÔ·ÂÀÌ Å¬¶óÀÌ¾ðÆ® ¾îÇø®ÄÉÀ̼ǿ¡¼­ ¿À´Â °ÍÀÓÀ» ÁöÁ¤ÇÕ´Ï´Ù.

STDOUT

Ãâ·ÂÀÌ Å¬¶óÀÌ¾ðÆ® ¾îÇø®ÄÉÀ̼ǿ¡¼­ ¿À´Â °ÍÀÓÀ» ÁöÁ¤ÇÕ´Ï´Ù.

BINARY

¸ðµç µ¥ÀÌÅ͸¦ ÅØ½ºÆ® º¸´Ù´Â ¹ÙÀ̳ʸ® Çü½Ä¿¡¼­ ÀÐ°í ¾²±âÇϵµ·Ï ¼³Á¤ÇÕ´Ï´Ù. ¹ÙÀ̳ʸ® ¸ðµå¿¡¼­´ÂDELIMITER,NULL,CSV¿É¼ÇÀ» ÁöÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù.

OIDS

°¢ ÇàÀÇ OID¸¦ º¹»çÇϵµ·Ï ÁöÁ¤ÇÕ´Ï´Ù (OID¸¦ °¡ÁöÁö ¾Ê´Â Å×ÀÌºí¿¡OIDS¸¦ ÁöÁ¤ÇÏ´Â °æ¿ì, ¶Ç´Â, query º¹»çÇÏ´Â °æ¿ì, ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù).

delimiter

ÆÄÀÏÀÇ °¢ ÇàÀÇ ¿­À» ºÐ¸®ÇÏ´Â 1°³ÀÇ ASCII ¹®ÀÚÀÔ´Ï´Ù. µðÆúÆ®´Â, ÅØ½ºÆ® ¸ðµå¿¡¼­´Â ÅÇ ¹®ÀÚ,CSV¸ðµå¿¡¼­´Â ÄÞ¸¶ÀÔ´Ï´Ù.

null string

NULL°ªÀ» ³ªÅ¸³»´Â ¹®ÀÚ¿­ÀÔ´Ï´Ù. µðÆúÆ®´Â, ÅØ½ºÆ® ¸ðµå¿¡¼­´Â\N(backslash N),CSV¸ðµå¿¡¼­´Â ÀοëºÎÈ£°¡ ¾ø´Â ºó °ªÀÔ´Ï´Ù. ±×·¯³ª, NULL°ª°ú °ø¹®ÀÚ¿­À» ±¸º°ÇÒ Çʿ䰡 ¾ø´Â °æ¿ì´Â, ÅØ½ºÆ® ¸ðµå¿©µµ °ø¹®ÀÚ¿­À» »ç¿ëÇÏ´Â °ÍÀÌ ÁÁÀ»¼öµµ ÀÖ½À´Ï´Ù.

Note: COPY FROMÀÇ °æ¿ì, ÀÌ ¹®ÀÚ¿­°ú ÀÏÄ¡ÇÏ´Â µ¥ÀÌÅÍ ¿ä¼Ò´Â NULL°ªÀ¸·Î ÀúÀåµË´Ï´Ù. COPY TO½ÇÇà½Ã¿¡ »ç¿ëÇÑ °°Àº ¹®ÀÚ¿­À» »ç¿ëÇϰí ÀÖÀ»Áö È®ÀÎÇØ¾ß ÇÕ´Ï´Ù.

CSV

ÄÞ¸¶·Î ºÐ¸®µÈ °ªÀÇ(CSV) ¸ðµå¸¦ ¼±ÅÃÇÕ´Ï´Ù.

HEADER

Çì´õ¶óÀÎÀ» Æ÷ÇÔÇÑ ÆÄÀÏÀ» ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ÆÄÀÏ¿¡´Â °¢ ¿­ÀÇ À̸§ÀÌ ±âÀçµÇ¾î ÀÖ½À´Ï´Ù. Ãâ·ÂÀ¸·Î´Â, ¼±µÎÇà¿¡ Å×À̺íÀÇ ¿­¸íÀÌ ÀÖ°í, ÀÔ·ÂÀ¸·Î´Â ¼±µÎÇàÀº ¹«½ÃµË´Ï´Ù.

quote

CSV¿¡ À־ÀÇ ÀοëºÎÈ£¿ëÀÇ ASCII ¹®ÀÚ¸¦ ÁöÁ¤ÇÕ´Ï´Ù. µðÆúÆ®´Â ÀÌÁß ÀοëºÎÈ£ÀÔ´Ï´Ù.

escape

CSV¸ðµå¿¡ À־ÀÇ µ¥ÀÌÅÍ ¹®ÀÚ °ªQUOTEÀÇ Àü¿¡ ³ªÅ¸³ª´Â ASCII ¹®ÀÚ¸¦ ÁöÁ¤ÇÕ´Ï´Ù. µðÆúÆ®´ÂQUOTEÀÇ °ª(Åë»óÀº ÀÌÁß ÀοëºÎÈ£)ÀÔ´Ï´Ù.

FORCE QUOTE

CSV¸ðµåÀÇCOPY TO¿¡ ´ëÇØ, ÁöÁ¤µÈ °¢ ¿­³»¿¡ ÀÖ´Â ¸ðµç ºñNULL°ªÀ» °­Á¦ÀûÀ¸·Î ÀοëºÎÈ£·Î µÑ·¯½Ô´Ï´Ù. NULLÃâ·ÂÀº ÀοëºÎÈ£·Î µÑ·¯½ÎÀÌÁö ¾Ê½À´Ï´Ù.

FORCE NOT NULL

CSV¸ðµåÀÇCOPY FROM¿¡ ´ëÇØ, ÁöÁ¤µÈ °¢ ¿­À» ÀοëºÎÈ£·Î µÑ·¯½Î¿© ÀÖ´Â °ÍÀ¸·Î °£ÁÖÇØ,NULL°ªÀº ¾ø´Â °ÍÀ¸·Î¼­ 󸮵˴ϴÙ. CSV¸ðµåÀÇ µðÆúÆ®ÀÇ NULL ¹®ÀÚ¿­('')ÀÌ Á¸ÀçÇÏ´Â °æ¿ì, À̰Ϳ¡ ÀÇÇØ °ªÀÌ ¼Ò½ÇÇØ, °ø¹®ÀÚ¿­·Î¼­ ÀԷµ˴ϴÙ.

Ãâ·Â

Á¤»óÀûÀ¸·Î ¿Ï·áÇßÀ» °æ¿ì,COPYÄ¿¸àµå´Â, ÀÌÇÏÀÇ Çü½ÄÀÇ Ä¿¸àµå ű׸¦ ¹Ýȯ ÇÕ´Ï´Ù.

COPY 
count

count ´Â º¹»çµÈ ÇàÀÇ °³¼öÀÔ´Ï´Ù.

ÁÖ¼®

COPY´Â Åë»óÀÇ Å×ÀÌºí¿¡ ´ëÇØ¼­¸¸ »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ºä¿¡ ´ëÇØ¼­ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ±×·¯³ª,COPY (SELECT * FROM viewname ) TO ...(¿Í)°ú ±â¼úÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

BINARYŰ¿öµå¸¦ ÁöÁ¤Çϸé, ¸ðµç µ¥ÀÌÅ͸¦ ÅØ½ºÆ® Çü½ÄÀÌ ¾Æ´Ñ, ¹ÙÀ̳ʸ® Çü½ÄÀ¸·Î ÀúÀå/Àб⸦ ½Ç½ÃÇÕ´Ï´Ù. Åë»óÀÇ ÅØ½ºÆ® ¸ðµåº¸´Ù ´Ù¼Ò µ¿ÀÛÀÌ »¡¶óÁý´Ï´Ù¸¸, ¹ÙÀ̳ʸ® Çü½ÄÀÇ ÆÄÀÏÀº, ´Ù¸¥ ¸Ó½Å ¾ÆÅ°ÅØÃijª ´Ù¸¥ ¹öÁ¯ÀÇPostgreSQL¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

COPY TOÀÇ °æ¿ì´Â °ªÀ» ÀоîµéÀÌ´Â Å×ÀÌºí¿¡ ´ëÇÑ SELECT ±ÇÇÑÀÌ,COPY FROMÀÇ °æ¿ì´Â °ªÀ» »ðÀÔÇÏ´Â Å×ÀÌºí¿¡ ´ëÇÑ INSERT ±ÇÇÑÀÌ ÇÊ¿äÇÕ´Ï´Ù.

COPYÄ¿¸àµå·Î ÁöÁ¤ÇÏ´Â ÆÄÀÏÀº, Ŭ¶óÀÌ¾ðÆ® ¾îÇø®ÄÉÀ̼ÇÀÌ ¾Æ´Ñ, ¼­¹ö°¡ Á÷Á¢ Àбâ/±âÀÔÀ» ½Ç½ÃÇÕ´Ï´Ù. µû¶ó¼­, ±×·¯ÇÑ ÆÄÀÏÀº, Ŭ¶óÀÌ¾ðÆ®°¡ ¾Æ´Ñ, µ¥ÀÌÅÍ º£À̽º ¼­¹ö ¸Ó½Å»ó¿¡ Á¸ÀçÇÏ´ÂÁö, ¶Ç´Â, µ¥ÀÌÅͺ£À̽º ¼­¹ö ¸Ó½Å¿¡ ¾×¼¼½º°¡ °¡´ÉÇØ¾ß ÇÕ´Ï´Ù. °Ô´Ù°¡ Ŭ¶óÀÌ¾ðÆ®´Â ¾Æ´Ñ,PostgreSQL»ç¿ëÀÚ(¼­¹ö¸¦ ½ÇÇàÇϰí ÀÖ´Â »ç¿ëÀÚ ID)°¡, ÀÐ°í ¾²´Â ±ÇÇÑÀ» °¡Áö°í ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. ÆÄÀϸíÀ» ÁöÁ¤ÇÑCOPYÄ¿¸àµå´Â, µ¥ÀÌÅͺ£À̽ºÀÇ ½´ÆÛ À¯Àú¸¸ÀÌ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Ä¿¸àµå¿¡ ÀÇÇØ, ¼­¹ö°¡ ¾×¼¼½º ±ÇÇÑÀ» °¡Áö´Â ¸ðµç ÆÄÀÏÀ» Àаųª, ±âÀÔÇÏ´Â °ÍÀÌ °¡´ÉÇÏ°Ô µÇ±â ¶§¹®ÀÔ´Ï´Ù.

COPY´ÂpsqlÀÇ\copy¿Í È¥µ¿ÇÏÁö ¸¶¼¼¿ä. \copy´ÂCOPY FROM STDIN³ªCOPY TO STDOUT¸¦ È£ÃâÇØ,psqlŬ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¾×¼¼½º ÇÒ ¼ö ÀÖ´Â ÆÄÀÏ¿¡ µ¥ÀÌÅÍÀÇ È£Ãâ/ÀúÀåÀ» ½Ç½ÃÇÕ´Ï´Ù. µû¶ó¼­,\copyÄ¿¸àµåÀÇ »ç¿ë½Ã, ÆÄÀÏ¿¡ÀÇ ¾×¼¼½º °¡´É¼º ¹× ÆÄÀÏ¿¡ ´ëÇÑ ¾×¼¼½º±ÇÇÑÀÇ À¯¹«´Â, ¼­¹ö´Â ¾Æ´Ï¶ó, Ŭ¶óÀÌ¾ðÆ® Ãø¿¡ ÀÇÁ¸ÇÕ´Ï´Ù.

COPY·Î ÆÄÀϸíÀ» ÁöÁ¤ÇÒ ¶§´Â, Ç×»ó Àý´ë°æ·Î·Î ±â¼úÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù. COPY TOÄ¿¸àµåÀÇ °æ¿ì´Â ¼­¹ö¿¡ ÀÇÇØ °­Á¦ÀûÀ¸·Î Àý´ë°æ·Î ÁöÁ¤À¸·Î ¸ô¸³´Ï´Ù¸¸,COPY FROMÄ¿¸àµå¿¡¼­´Â »ó´ë°æ·Î·Î ÁöÁ¤µÈ ÆÄÀÏÀ» ÀоîµéÀÌ´Â Àϵµ °¡´É ÇÕ´Ï´Ù. ÈÄÀÚÀÇ °æ·Î´Â, Ŭ¶óÀ̾ðÆ®ÀÇ ÀÛ¾÷ µð·ºÅ丮´Â ¾Æ´Ï°í, ¼­¹ö ÇÁ·Î¼¼½ºÀÇ ÀÛ¾÷ µð·ºÅ丮(Åë»óÀº Ŭ·¯½ºÅÍÀÇ µ¥ÀÌÅÍ µð·ºÅ丮)·ÎºÎÅÍÀÇ »ó´ëÀûÀÎ µð·ºÅ丮·Î¼­ ÇØ¼®µË´Ï´Ù.

COPY FROM´Â, Ç༱Áö Å×À̺í»ó¿¡¼­ ÀÓÀÇÀÇ Æ®¸®°Å ¹× üũ Á¦¾àÀ» È£ÃâÇÕ´Ï´Ù¸¸, ·êÀº È£ÃâÇÏÁö ¾Ê½À´Ï´Ù.

COPYÀÇ ÀÔÃâ·ÂÀºDateStyleÀÇ ¿µÇâÀ» ¹Þ½À´Ï´Ù. µðÆúÆ® ÀÌ¿ÜÀÇDateStyle°¡ ¼³Á¤µÈ °¡´É¼ºÀÌ ÀÖ´ÂPostgreSQLInstallation¿ÍÀÇ À̽ÄÀ» È®½ÇÇÏ°Ô ÇÏ°í ½ÍÀº °æ¿ì´Â,COPY TO¸¦ »ç¿ëÇϱâ Àü¿¡DateStyle¸¦ISO·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù.

COPY¿¡¼­´Â, ¿¡·¯°¡ ¹ß»ýÇÏÀÚ¸¶ÀÚ ½ÇÇà Á¤ÁöÇÕ´Ï´Ù. COPY TOÄ¿¸àµåÀÇ ½ÇÇà¿¡¼­´Â ¾Æ¹«·± ¹®Á¦ ¾ø½À´Ï´Ù¸¸,COPY FROMÀÇ °æ¿ì´Â, ´ë»óÀÌ µÇ´Â Å×À̺íÀº óÀ½ºÎºÐÀÇ ÇàÀ» ÀÌ¹Ì ¹Þ°í ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ÇàÀº ºÒ°¡½ÃÈ­ µÇ°Å³ª ¶Ç´Â ¾×¼¼½º ÇÒ ¼ö ¾ø½À´Ï´Ù¸¸, µð½ºÅ© ½ºÆäÀ̽º¸¦ Á¡À¯ ÇÕ´Ï´Ù. µû¶ó¼­, Å« º¹»ç 󸮿¡ ¸î ¹øÀ̳ª ½ÇÆÐÇßÀ» °æ¿ì¿¡´Â, »ó´çÇÑ ¾çÀÇ ¾µ¸ð¾ø´Â µð½ºÅ© ½ºÆäÀ̽º°¡ Áõ°¡ÇØ ¹ö¸³´Ï´Ù. ÀÌ ¾µ¸ð¾ø´Â ½ºÆäÀ̽º¸¦ µÇãÀ¸·Á¸é ,VACUUM¸¦ È£ÃâÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

ÆÄÀÏÀÇ Çü½Ä

ÅØ½ºÆ® Çü½Ä

COPY¸¦ BINARY¿É¼Ç ¶Ç´ÂCSV¿É¼ÇÀ» ºÎ°¡ÇÏÁö ¾Ê°í »ç¿ëÇßÀ» °æ¿ì, ÀÐ°í ¾²¿©Áø µ¥ÀÌÅÍ´Â Å×À̺íÀÇ ÇϳªÀÇ ÇàÀ» 1ÇàÀ¸·Î ³ªÅ¸³½ ÅØ½ºÆ® ÆÄÀÏÀÌ µË´Ï´Ù. Çà³»ÀÇ ¿­Àº ´Ü¶ôÁö¾î ¹®ÀÚ·Î ´Ü¶ôÁö¾îÁý´Ï´Ù. ¼Ó¼ºÄ¡ ÀÚü´Â, ±× ¼Ó¼ºÀÇ µ¥ÀÌÅÍÇüÀÇ Ãâ·Â ÇÔ¼ö·Î »ý¼ºµÈ, ¶Ç´Â, ±× ÀÔ·Â ÇÔ¼ö·Î ¹Þ¾ÆµéÀ̱⠰¡´ÉÇÑ ¹®ÀÚ¿­ÀÔ´Ï´Ù. °ªÀÌ NULLÀÎ ¿­¿¡¼­´Â, ÁöÁ¤µÈ NULL°ªÀ» ³ªÅ¸³»´Â ¹®ÀÚ¿­ÀÌ »ç¿ëµË´Ï´Ù. ÀÔ·Â ÆÄÀÏÀÇ ¸î°³ÀÇ Çà¿¡ ÀÖ´Â ¿­ÀÇ °³¼ö°¡ ¿¹»óµÈ ¼ö¿Í ´Ù¸¥ °æ¿ì,COPY FROM´Â ¿¡·¯¸¦ ¹ß»ýÇÕ´Ï´Ù. OIDS°¡ ÁöÁ¤µÇ¾úÀ» °æ¿ì, OID´Â, »ç¿ëÀÚ µ¥ÀÌÅÍÀÇ ¿­ÀÇ Àü¿¡ ÀÖ´Â, 1¹øÂ°ÀÇ ¿­·Î¼­ ÀÐ°í ¾²¿©Áý´Ï´Ù.

µ¥ÀÌÅÍÀÇ Á¾·á´Â, ¹é½½·¡½Ã ±¸°£(\. )À» Æ÷ÇÔÇÏ´Â 1°³ÀÇ ÇàÀ¸·Î ³ªÅ¸³»Áý´Ï´Ù. EOF´Â ÆÄÀÏÀÇ Á¾·á¸¦ Àß ¼öÇàÇϱ⠶§¹®¿¡, ÆÄÀϷκÎÅÍÀÇ ÀÐÀ» °æ¿ì´Â µ¥ÀÌÅÍ Á¾·á ¸¶Å©´Â ºÒÇÊ¿äÇÕ´Ï´Ù. ±×·¯³ª, 3.0 ÀÌÀüÀÇ Å¬¶óÀÌ¾ðÆ® ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÑ Å¬¶óÀÌ¾ðÆ® ¾ÖÇø®ÄÉÀ̼ǰú µ¥ÀÌÅÍÀÇ º¹»ç¸¦ ½Ç½ÃÇÏ´Â °æ¿ì¸¸Àº, Àоîµé¿©, ±âÀÔÇϰí, Á¾·á ¸¶Å©°¡ ÇÊ¿äÇÕ´Ï´Ù.

¹é½½·¡½Ã ¹®ÀÚ(\)´Â,COPY´ë»ó µ¥ÀÌÅͳ»¿¡¼­, ÇàÀ̳ª ¿­ÀÇ ´Ü¶ô ¹®ÀÚ·Î ÆÇÁ¤µÉ °¡´É¼ºÀÌ ÀÖ´Â µ¥ÀÌÅÍ ¹®ÀÚÀÇ ÀοëºÎÈ£ ºÙ¿© »ç¿ëÇÕ´Ï´Ù. ƯÈ÷, ¹é½½·¡½Ã ÀÚü, °³Çà, »ç¿ëÁßÀÇ ´Ü¶ô ¹®ÀÚµîÀÇ ¹®ÀÚ°¡ ¿­ÀÇ °ª¿¡ Æ÷ÇԵǾî ÀÖ´Â °æ¿ì´Â, ¹Ýµå½Ã Àü¿¡ ¹é½½·¡½Ã¸¦ ºÙÀÌÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

ÁöÁ¤µÈ NULL ¹®ÀÚ¿­Àº ¹é½½·¡½Ã¸¦ ºÙÀÌÁö ¾Ê°íCOPY TO¿¡ º¸³»Áý´Ï´Ù. ÇÑÆí,COPY FROM¿¡¼­´Â, ¹é½½·¡½Ã¸¦ »èÁ¦Çϱâ Àü¿¡ NULL ¹®ÀÚ¿­°ú ÀÔ·ÂÀ» ºñ±³ÇÕ´Ï´Ù. µû¶ó¼­,\N¶ó°í ÇÏ´Â NULL ¹®ÀÚ¿­ÀÌ ½ÇÁ¦ÀÇ\N¶ó°í ÇÏ´Â µ¥ÀÌÅͰª°ú È¥¶õÇÏ´Â °ÍÀº ÀÖÀ» ¼ö ¾ø½À´Ï´Ù. (À̰ÍÀº\\N·Î¼­ Ç¥ÇöµË´Ï´Ù. )

´ÙÀ½Àº COPY FROM·Î ½Äº°ÇÑ Æ¯º°ÇÑ ¹é½½·¡½Ã ½ÃÄö½ºÀÔ´Ï´Ù.

½ÃÄö½º Ç¥Çö
\b ¹é½ºÆäÀ̽º(ASCII 8)
\f ÆûÇǵå(ASCII 12)
\n °³Çà(ASCII 10)
\r º¹±ÍºÎÈ£(ASCII 13)
\t ÅÇ(ASCII 9)
\v ¼öÁ÷ ÅÇ(ASCII 11)
\ ¼ýÀÚ ¹é½½·¡½Ã¿¡ °è¼ÓµÇ¾î 1¿¡¼­ 3°³ÀÇ 8 Áø¼öÀÇ ¼ýÀÚ¸¦ ÄÚµå ¹øÈ£·Î¼­ ÁöÁ¤Çϸé, ±× Äڵ尡 ³ªÅ¸³»´Â ¹®ÀÚ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
\x digits backslash,x ¿¡ °è¼ÓµÇ¾î 1¿¡¼­ 2°³ÀÇ 16 Áø¼öÀÇ ¼ýÀÚ¸¦ ÄÚµå ¹øÈ£·Î¼­ ÁöÁ¤Çϸé, ±× Äڵ尡 ³ªÅ¸³»´Â ¹®ÀÚ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÇöÀç,COPY TO´Â, ¹é½½·¡½ÃÀÇ µÚ·Î 8 Áø¼ö³ª 16 Áø¼ö¸¦ ºÙÀÎ Çü½ÄÀ¸·Î ¹®ÀÚ¸¦ Ãâ·ÂÇÒ °ÍÀº ¾ø½À´Ï´Ù¸¸, »ó±â À϶÷¿¡ Á¸ÀçÇÏÁö ¾Ê´Â Á¦¾î ¹®ÀÚ°¡ Æ÷ÇԵǾî ÀÖ´Â °æ¿ì´Â, ÀÌ Çü½ÄÀ» »ç¿ëÇÕ´Ï´Ù.

»óÇ¥·Î ±âÀçµÇÁö ¾ÊÀº ¹é½½·¡½Ã ÷ºÎÀÇ ¹®ÀÚ´Â ¸ðµÎ, ±×´ë·Î ÇØ¼®µË´Ï´Ù. ±×·¯³ª, ºÒÇÊ¿äÇÑ ¹é½½·¡½ÃÀÇ Ãß°¡¿¡´Â ÁÖÀÇÇØ ÁÖ¼¼¿ä. ¿ì¿¬È÷ µ¥ÀÌÅ͸¦ ¸¶Áö¸·À» ³ªÅ¸³»´Â Ç¥(\. )³ª null ¹®ÀÚ¿­(µðÆúÆ®¿¡¼­´Â\N) °ú ÇÕÄ¡Çϴ ij¸¯ÅÍ ¶óÀÎÀ» »ý¼ºÇØ ¹ö¸±Áöµµ ¸ð¸£±â ¶§¹®ÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ¹®ÀÚ¿­Àº ´Ù¸¥ ¹é½½·¡½ÃÀÇ Ã³¸®¸¦ ½Ç½ÃÇϱâ ÀüÀ¸·Î ÇØ¼®µË´Ï´Ù.

COPYµ¥ÀÌÅ͸¦ »ý¼ºÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀº, µ¥ÀÌÅÍ ³»ÀÇ °³Çà°ú º¹±ÍºÎÈ£¸¦ °¢°¢,\n¿Í\r·Î º¯È¯ÇÏ´Â °ÍÀ» °­Çϰí Ãßõ µÇ°í ÀÖ½À´Ï´Ù. ÇöÀç·Î¼­´Â, ¹é½½·¡½Ã¿Í º¹±Í ¹®ÀÚ·Î µ¥ÀÌÅͳ»ÀÇ º¹±Í¸¦ ³ªÅ¸³»°Å³ª ¹é½½·¡½Ã¿Í °³Çà ¹®ÀÚ·Î µ¥ÀÌÅÍ ³»ÀÇ °³ÇàÀ» ³ªÅ¸³»´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù. ±×·¯³ª, ÀÌ·¯ÇÑ Ç¥ÇöÀº ÇâÈÄÀÇ ¸±¸®½º¿¡¼­´Â, ¹Þ¾ÆµéÀÏ ¼ö ¾ø°Ô µÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ¶ÇÇÑ, COPYÆÄÀÏÀÌ ´Ù¸¥ ¸Ó½ÅÀ» °ÉÃÄ Àü¼Û µÇ´Â °æ¿ì, ÆÄ¼ÕÇÒ ¿ì·Á°¡ ÀÖ½À´Ï´Ù (¿¹¸¦ µé¸é, Unix·ÎºÎÅÍ Windows ȤÀº ±× ¿ª).

COPY TO´Â °¢ ÇàÀÇ ÁÙ ³¡¿¡ Unix Çü½ÄÀÇ °³Çà("\n")À» Ãâ·ÂÇÕ´Ï´Ù. µ¡ºÙ¿© Microsoft Windows·Î °¡µ¿ÇÏ´Â ¼­¹öÀÇ °æ¿ì´Â, ¼­¹ö»óÀÇ ÆÄÀÏ¿¡ÀÇCOPYÀÇ °æ¿ì¿¡°Ô¸¸ º¹±Í/°³Çà("\r\n")À» Ãâ·ÂÇÕ´Ï´Ù. Ç÷§Æû Àü¹ÝÀÇ Àϰü¼ºÀ» À§Çؼ­, ¼­¹öÀÇ Ç÷§Æû¿¡ °ü°è¾øÀÌ,COPY TO STDOUT´Â Ç×»ó"\n"¸¦ ¼Û½ÅÇÕ´Ï´Ù. COPY FROM´Â, °³Çà, º¹±ÍºÎÈ£, ¶Ç´Â º¹±ÍºÎÈ£/°³ÇàÀ» ÁÙ ³¡À¸·Î Ãë±ÞÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¥ÀÌÅ͸¦ ÀǵµÇÑ ¹é½½·¡½Ã°¡ ¾ø´Â °³ÇàÀ̳ª º¹±ÍºÎÈ£¿¡ ÀÇÇÑ ¿¡·¯ÀÇ À§Ç輺À» ÁÙÀ̱â À§ÇØ,COPY FROM´Â, ÀÔ·ÂÇàÀÇ ÁÙ ³¡ÀÌ ¸ðµÎ °°Áö ¾ÊÀº °æ¿ì¿¡ °æ°í¸¦ ¹ßÇ¥ÇÕ´Ï´Ù.

CSV Çü½Ä

ÀÌ Çü½ÄÀº, ½ºÇÁ·¹µå½¬Æ®¿Í °°Àº ´Ù¸¥ ¸¹Àº ÇÁ·Î±×·¥À¸·Î »ç¿ëµÇ´Â ÄÞ¸¶·Î ºÐ¸®µÈ °ª(CSV) ÆÄÀÏ Çü½ÄÀ» ÀÓÆ÷Æ®, export Çϱâ À§Çؼ­ »ç¿ëµË´Ï´Ù. PostgreSQLÀÇ Ç¥ÁØ ÅØ½ºÆ® ¸ðµå·Î »ç¿ëµÇ´Â À̽ºÄÉÀÌÇÁ ´ë½Å¿¡, ÀϹÝÀûÀÎ CSVÀÇ À̽ºÄÉÀÌÇÁ ¸ÅÄ¿´ÏÁòÀ» »ý¼º, ÀνÄÇÕ´Ï´Ù.

°¢ ·¹ÄÚµåÀÇ °ªÀºDELIMITER¹®ÀÚ·Î ºÐ¸®µË´Ï´Ù. ´Ü¶ô ¹®ÀÚ,QUOTE¹®ÀÚ,NULL¹®ÀÚ¿­, º¹±ÍºÎÈ£, °³Ç๮ÀÚ¸¦ Æ÷ÇÔÇÑ °ªÀÇ °æ¿ì, ÀüüÀÇ °ªÀÇ ÀüÈÄ¿¡QUOTE¹®ÀÚ°¡ ºÎ¿©µË´Ï´Ù. °ª Áß¿¡¼­QUOTE¹®ÀÚ³ªESCAPE¹®ÀÚ°¡ ³ªÅ¸³ª´Â °æ¿ì, ±× Àü¿¡ À̽ºÄÉÀÌÇÁ¿ëÀÇ ¹®ÀÚ°¡ ºÎ¿©µË´Ï´Ù. ¶ÇÇÑ,FORCE QUOTE¸¦ »ç¿ëÇØ, ƯÁ¤¿­ ³»ÀÇ ºñNULL°ªÀ» Ãâ·ÂÇÒ ¶§¿¡ °­Á¦ÀûÀ¸·Î ÀοëºÎÈ£¸¦ ºÎ¿©ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

CSVÇü½Ä¿¡´ÂNULL°ª°ú °ø¹®ÀÚ¿­À» ±¸º°Çϴ ǥÁØÀûÀÎ ¹æ¹ýÀº ¾ø½À´Ï´Ù. PostgreSQLÀÇ COPY¿¡¼­´Â, ÀοëºÎÈ£¿¡ ÀÇÇØ À̰ÍÀ» ±¸º°Çϰí ÀÖ½À´Ï´Ù. NULL´ÂNULL¹®ÀÚ¿­·Î¼­ Ãâ·ÂµÇ¾î ÀοëºÎÈ£·Î µÑ·¯½ÎÀÌÁö ¾Ê½À´Ï´Ù. ÇÑÆí,NULL¹®ÀÚ¿­¿¡ ÀÏÄ¡ÇÏ´Â µ¥ÀÌÅͰªÀº ÀοëºÎÈ£·Î µÑ·¯½ÎÀÔ´Ï´Ù. ±× °á°ú, µðÆúÆ®ÀÇ ¼³Á¤À» »ç¿ëÇϸé,NULL´Â ÀοëºÎÈ£·Î µÑ·¯½ÎÀÌÁö ¾Ê´Â °ø¹®ÀÚ¿­·Î¼­ ÇÑÆí, °ø¹®ÀÚ¿­Àº ÀÌÁß ÀοëºÎÈ£·Î µÑ·¯½Î¿©("") Ãâ·ÂµË´Ï´Ù. µ¥ÀÌÅÍÀÇ ÀÐÀ» ¶§µµ °°Àº ±ÔÄ¢À» µû¸¨´Ï´Ù. FORCE NOT NULL¸¦ »ç¿ëÇØ, ƯÁ¤¿­¿¡ ´ëÇØNULLÀÔ·ÂÀÇ ºñ±³¸¦ ½Ç½ÃÇÏÁö ¾Ê°Ô ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

CSVÇü½Ä¿¡¼­´Â ¹é½½·¡½Ã´Â Ưº°ÇÑ ¹®ÀÚ°¡ ¾Æ´Ï±â ¶§¹®¿¡, µ¥ÀÌÅÍ Á¾´Ü ±âÈ£\. ´Â µ¥ÀÌÅÍ °ªÀ¸·Î¼­ ³ªÅ¸³ª´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. À߸øµÈ ÇØ¼®À» ¹æÁöÇϱâ À§Çؼ­, ÇÑ Çà³»ÀÇ 1Ç×°·Î¼­\. µ¥ÀÌÅͰªÀÌ ³ªÅ¸³ª´Â °æ¿ì, Ãâ·Â¿¡ ÀÚµ¿ÀûÀ¸·Î ÀοëºÎÈ£¸¦ ºÙÀÏ ¼ö ÀÖ½À´Ï´Ù. ¶Ç, ÀÔ·ÂÀ¸·Î´Â ÀοëºÎÈ£¸¦ ºÙÀÌ´Â °æ¿ì µ¥ÀÌÅÍ Á¾´Ü ±âÈ£·Î¼­ ÇØ¼®µÇÁö ¾Ê½À´Ï´Ù. ´ÜÀÏÀÇ ÀοëºÎÈ£°¡ ¾ø´Â ¿­°ú \. ÀÇ °ªÀ» °¡Áú °¡´É¼ºÀÌ ÀÖ´Â ¶Ç ´Ù¸¥ ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î »ý¼ºµÈ ÆÄÀÏÀ» ·ÎµùÇÏ´Â °æ¿ì, ÀÔ·Â ÆÄÀϳ»ÀÇ ÀÌ·¯ÇÑ °ªÀ» ÀοëºÎÈ£·Î µÑ·¯½Ò Çʿ䰡 ÀÖ½À´Ï´Ù.

Note: CSV¸ðµå¿¡¼­, ¹®ÀÚ´Â Áß¿äÇÑ Àǹ̸¦ °¡Áý´Ï´Ù. °ø¹é ¹®ÀÚ ¹× ´ÜÀÏ ÀοëºÎÈ£·Î µÑ·¯½ÎÀÎ °ªÀ̳ªDELIMITERÀÌ¿ÜÀÇ ÀÓÀÇÀÇ ¹®ÀÚ°¡, ÀÌ·¯ÇÑ ¹®ÀÚ¿¡ Æ÷ÇԵ˴ϴÙ. À̰Ϳ¡ ÀÇÇØ, °íÁ¤ÆøÀ¸·Î Çϱâ À§Çؼ­ CSVÀÇ Çà¿¡ °ø¹é ¹®ÀÚ¸¦ ³Ö´Â ½Ã½ºÅÛÀ¸·ÎºÎÅÍ µ¥ÀÌÅ͸¦ ÀÓÆ÷Æ® ÇÒ ¶§¿¡ ¿¡·¯°¡ ¹ß»ýÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ »óȲÀÌ µÇ¾úÀ» °æ¿ì,PostgreSQL¿¡ µ¥ÀÌÅ͸¦ ÀÓÆ÷Æ® Çϱâ Àü¿¡, ±×CSVÆÄÀϷκÎÅÍ ÁÙ ³¡ÀÇ °ø¹éÀ» Á¦°ÅÇÏ´Â »çÀü 󸮰¡ ÇÊ¿äÇÏ°Ô µË´Ï´Ù.

Note: CSV ¸ðµå´Â, ³»ÀåµÇ¾î ÀÖ´Â ÁٹٲÞÀ» Æ÷ÇÔÇϰí ÀοëºÎÈ£·Î µÑ·¯½ÎÀÎ °ªÀ» °¡Áø CSV ÆÄÀÏÀ» ÀνÄÇÏ°í »ý¼ºÇÕ´Ï´Ù. µû¶ó¼­, ÀÌ ÆÄÀÏÀº, ÅØ½ºÆ® ¸ðµå ÆÄÀϰú °°ÀÌ 1°³ÀÇ Å×À̺íÇàÀÌ 1ÇàÀ¸·Î ³ªÅ¸³»Áö°í ÀÖ´Ù°í´Â ÇÒ ¼ö ¾ø½À´Ï´Ù.

Note: ±«ÀÌÇÑ ±×¸®°í À߸øµÈ CSV ÆÄÀÏÀ» »ý¼ºÇÏ´Â ÇÁ·Î±×·¥ÀÌ ¸¹ÀÌ Á¸ÀçÇϹǷÎ, ÀÌ ÆÄÀÏ ¼­½Ä¿¡´Â Ç¥Áغ¸´Ù ¸¹Àº °ü½ÀÀÌ ÀÖ½À´Ï´Ù. µû¶ó¼­, ÀÌ ¸ÅÄ¿´ÏÁòÀ» »ç¿ëÇÏ¿© ÀÓÆ÷Æ® ÇÒ ¼ö ¾ø´Â ÆÄÀÏÀÌ Á¸ÀçÇÒ ¼öµµ ÀÖ°í, COPY°¡ ´Ù¸¥ ÇÁ·Î±×·¥À¸·Î ó¸®ÇÒ ¼ö ¾ø´Â ÆÄÀÏÀ» »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

¹ÙÀ̳ʸ® Çü½Ä

COPY BINARY·Î »ç¿ëµÇ´Â ÆÄÀÏ Çü½ÄÀºPostgreSQL 7.4·Î º¯°æµÇ¾ú½À´Ï´Ù. »õ·Î¿î Çü½ÄÀº, ÆÄÀÏ Çì´õ, Çà µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ 0ÀÌ»óÀÇ Æ©ÇÃ, ÆÄÀÏ Æ®·¹ÀÏ·¯·Î ±¸¼ºµË´Ï´Ù. Çì´õ¿Í µ¥ÀÌÅÍ´Â, ³×Æ®¿öÅ© ¹ÙÀÌÆ® ¼ø¼­·Î µÇ¾î ÀÖ½À´Ï´Ù.

ÆÄÀÏ Çì´õ

ÆÄÀÏ Çì´õ´Â 15¹ÙÀÌÆ®ÀÇ °íÁ¤ Çʵå¿Í ±× ÈÄ¿¡ °è¼ÓµÇ´Â °¡º¯Àå Çì´õ È®Àå ¿µ¿ªÀ¸·ÎºÎÅÍ ±¸¼ºµË´Ï´Ù. °íÁ¤ Çʵå´Â ÀÌÇÏ¿Í °°½À´Ï´Ù.

¼­¸í

PGCOPY\n\377\r\n\0¶ó°í ÇÏ´Â 11¹ÙÀÌÆ®ÀÇ ½ÃÄö½ºÀÔ´Ï´Ù. ÀÌ ¼­¸íÀÇ Çʼö ºÎºÐ¿¡ 0 ¹ÙÀÌÆ®°¡ Æ÷ÇԵǾî ÀÖ´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä (ÀÌ ¼­¸íÀº, 8 ºñÆ®¸¦ Åë°ú½ÃŰÁö ¾Ê´Â Àü¼Û ¹æ½Ä¿¡ ÀÇÇØ ÆÄÀÏÀÌ ÆÄ¼ÕÇßÀ» °æ¿ì, À̰ÍÀ» ¿ëÀÌÇÏ°Ô ½Äº°ÇÒ ¼ö ÀÖµµ·Ï ¼³°èµÇ¾î ÀÖ½À´Ï´Ù. ¼­¸íÀº, °³Çà ÄÚµå º¯È¯À̳ª 0 ¹ÙÀÌÆ®ÀÇ »èÁ¦, »óÀ§ ºñÆ®ÀÇ »èÁ¦, ¶Ç´Â ÆÐ¸®Æ¼ÀÇ º¯°æµî¿¡ ÀÇÇØ º¯È­µË´Ï´Ù).

Ç÷¡±× Çʵå

ÀÌ ÆÄÀÏ Çü½ÄÀÇ Áß¿äÇÑ ºÎºÐÀÌ µÇ´Â 32 ºñÆ® Á¤¼öÀÇ ºñÆ® ¸¶½ºÅ©ÀÔ´Ï´Ù. ºñÆ®¿¡´Â 0(LSB)¿¡¼­ 31(MSB)±îÁöÀÇ ¹øÈ£°¡ ºÙ¾î ÀÖ½À´Ï´Ù. ÀÌ Çʵå´Â, ÀÌ ÆÄÀÏ Çü½Ä¿¡¼­ »ç¿ëµÇ´Â ´Ù¸¥ ¸ðµç Á¤¼ö Çʵå¿Í °°ÀÌ, (°¡Àå Áß¿äÇÑ ÃÖÃÊÀÇ ¹ÙÀÌÆ®) ³×Æ®¿öÅ© ¹ÙÀÌÆ® ¼ø¼­·Î ÀúÀåµÇ°í ÀÖ´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä. ÆÄÀÏ Çü½Ä»óÀÇ Ä¡¸íÀûÀÎ ¹®Á¦¸¦ ³ªÅ¸³»±â À§Çؼ­,16-31ºñÆ®´Â ¿¹¾àµÇ°í ÀÖ½À´Ï´Ù. ÀÌ ¹üÀ§¿¡ ¿¹»ó¿ÜÀÇ ºñÆ®°¡ ¼³Á¤µÇ¾î ÀÖ´Â °ÍÀÌ ÆÇ¸íµÇ¾úÀ» °æ¿ì, ÀÐ´Â Ãø¿¡¼­´Â 󸮸¦ Áß´ÜÇØ¾ß ÇÕ´Ï´Ù. ÈĹæ ȣȯ¿¡ À־ÀÇ Çü½ÄÀÇ ¹®Á¦¸¦ ÅëÁöÇϱâ À§Çؼ­,0-15ºñÆ®´Â ¿¹¾àµÇ°í ÀÖ½À´Ï´Ù. ÀÌ ¹üÀ§¿¡ ¿¹»ó¿ÜÀÇ ºñÆ®°¡ ¼³Á¤µÇ¾î À־, ÀÐ´Â Ãø¿¡¼­´Â ¹«½ÃÇØ¾ß ÇÕ´Ï´Ù. ÇöÀç, 1°³ÀÇ ºñÆ®¸¸ÀÌ Ç÷¡±× ºñÆ®·Î¼­ Á¤Àǵǰí ÀÖ¾î ³ª¸ÓÁö´Â 0ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù.

Bit 16

1À̶ó¸é, OID°¡ µ¥ÀÌÅÍ¿¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. 0À̶ó¸é, Æ÷ÇԵǾî ÀÖÁö ¾Ê½À´Ï´Ù.

Çì´õ È®Àå ¿µ¿ªÀÇ ±æÀÌ

ÀÚ±â ÀÚ½ÅÀ» Á¦¿ÜÇÑ, Çì´õÀÇ ³²Àº ºÎºÐÀÇ ¹ÙÀÌÆ®ÀåÀ» ³ªÅ¸³»´Â 32 ºñÆ®ÀÇ Á¤¼öÀÔ´Ï´Ù. ÇöÀç, À̰ÍÀº 0ÀÌ µÇ°í ÀÖ¾î ¹Ù·Î ÈÄ¿¡ ÃÖÃÊÀÇ Æ©ÇÃÀÌ °è¼ÓµË´Ï´Ù. ÇâÈÄ, Çì´õ³»¿¡ Ãß°¡ µ¥ÀÌÅ͸¦ ÀúÀåÇÏ´Â °Í °°Àº Çü½ÄÀÇ º¯°æÀÌ ÀÖÀ»Áöµµ ¸ð¸¨´Ï´Ù. ÀÐ´Â Ãø¿¡¼­´Â, Çì´õ È®Àå µ¥ÀÌÅÍÀÇ Ãë±ÞÀ» ¸ð¸£´Â °æ¿ì, ±× µ¥ÀÌÅ͸¦ ½ºÅµ ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

Çì´õ È®Àå ¿µ¿ªÀº, ÀÚ±â½Äº° ûũÀÇ ½ÃÄö½º¸¦ º¸°ü À¯ÁöÇϱâ À§Çؼ­ ÁغñµÇ¾î ÀÖ½À´Ï´Ù. Ç÷¡±× Çʵå´Â Àоîµé¿© ¸ÕÀú È®Àå ¿µ¿ªÀÇ ³»¿ëÀ» ¾Ë¸®´Â °ÍÀÌ ¾Æ´Õ´Ï´Ù. Çì´õ È®Àå ³»¿ëÀÇ °³°³ÀÇ ¼³°è´Â ÇâÈÄÀÇ ¸±¸®½º¸¦ À§Çؼ­ ³²°Ü ÀÖ½À´Ï´Ù.

ÀÌ ¼³°è¿¡ ÀÇÇØ, ÈĹæ ȣȯ¼ºÀ» À¯ÁöÇÏ´Â Çì´õÀÇ Ãß°¡(Çì´õ È®Àå üũÀÇ Ãß°¡³ª ÇÏÀ§ flag bitÀÇ ¼³Á¤)¿Í ÈĹæ ȣȯ¼ºÀÌ ¾ø´Â º¯°æ(º¯°æÀ» ÅëÁöÇϱâ À§ÇÑ °íÀ§ Ç÷¡±× ºñÆ®ÀÇ ¼³Á¤, ¹× ÇÊ¿äÇÏ°Ô ÀÀÇÑ È®Àå ¿µ¿ª¿¡ÀÇ Áö¿ø µ¥ÀÌÅÍÀÇ Ãß°¡)ÀÇ ¾çÂÊ ¸ðµÎ¿¡ ´ëÀÀÇÒ ¼ö ÀÖ½À´Ï´Ù.

Æ©ÇÃ

¸ðµç Æ©ÇÃÀº, Æ©Çà ³»ÀÇ Çʵå¼ö¸¦ Ä«¿îÆ®ÇÏ´Â 16 ºñÆ®ÀÇ Á¤¼ö·Î ½ÃÀ۵˴ϴÙ(Çö½ÃÁ¡¿¡¼­´Â, Å×ÀÌºí³»ÀÇ ¸ðµç Æ©ÇÃÀº µ¿ÀÏÇÑ Çʵå¼ö¸¦ °¡Áö°Ô µÇ¾î ÀÖ½À´Ï´Ù¸¸, ÇâÈÄ, À̰ÍÀº º¯°æµÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù). ±× ÈÄ¿¡, Æ©Çà ÁßÀÇ °¢°¢ÀÇ Çʵ尡 ¹Ýº¹µË´Ï´Ù. ÀÌ·¯ÇÑ Çʵ忡´Â, ¼±µÎ¿¡ ÇÊµå µ¥ÀÌÅͰ¡ ¸î ¹ÙÀÌÆ® ÀÖ´ÂÁö¸¦ ³ªÅ¸³»´Â 32ºñÆ® ±æÀÌÀÇ ¿öµå¸¦ ºÙÀÏ ¼ö ÀÖ½À´Ï´Ù. (ÀÌ ¿öµå°¡ ³ªÅ¸³»´Â ±æÀÌ¿¡´Â ÀÚ±â ÀÚ½ÅÀº Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù. µû¶ó¼­, 0ÀÌ µÉ ¼öµµ ÀÖ½À´Ï´Ù). Ư¼öÇÑ °æ¿ì¿¡, -1Àº NULL ÇʵåÀÇ °ªÀ» ³ªÅ¸³À´Ï´Ù. ÀÌ NULL°¡ ÁöÁ¤µÇ¾úÀ» °æ¿ì, ¹ÙÀÌÆ®°ªÀº ¾ø½À´Ï´Ù.

Çʵ尣¿¡´Â Á¤·Ä¿ëÀÇ ÆÐµùÀ̳ª ±× ¿ÜÀÇ ºÒÇÊ¿äÇÑ µ¥ÀÌÅÍ´Â ¾ø½À´Ï´Ù.

ÇöÀç,COPY BINARYÆÄÀÏ ³»ÀÇ ¸ðµç µ¥ÀÌÅͰªÀº, ¹ÙÀ̳ʸ® Çü½Ä(Çü½Ä ÄÚµå 1)À̶ó°í °¡Á¤µÇ°í ÀÖ½À´Ï´Ù. Àå·¡ÀÇ È®Àå¿¡ ÀÇÇØ, ¿­´ÜÀ§¿¡ Çü½Ä Äڵ带 ÁöÁ¤ÇÏ´Â Çì´õ Çʵ尡 Ãß°¡µÇ´Â °ÍÀ» ¿¹»óÇÑ °ÍÀÔ´Ï´Ù.

½ÇÁ¦ÀÇ Æ©Çà µ¥ÀÌÅÍÀÇ ÀûÀýÇÑ ¹ÙÀ̳ʸ® Çü½ÄÀ» °áÁ¤ÇÏ·Á¸é,PostgreSQLÀÇ ¼Ò½º, ƯÈ÷ °¢ ¿­ÀÇ µ¥ÀÌÅÍÇü¿ëÀÇ*send ÇÔ¼ö¿Í*recvÇÔ¼ö(Åë»ó, ÀÌ·¯ÇÑ ÇÔ¼ö´Â ¼Ò½º ¹èÆ÷¹° ³»ÀÇsrc/backend/utils/adtµð·ºÅ丮¿¡ ÀÖ½À´Ï´Ù)¸¦ Á¶»çÇØ¾ß ÇÕ´Ï´Ù.

ÀÌ ÆÄÀÏ¿¡ OID°¡ Æ÷ÇԵǴ °æ¿ì, OID Çʵ尡 Çʵå Ä«¿îÆ® ¿öµåÀÇ Á÷ÈÄ¿¡ °è¼ÓµË´Ï´Ù. À̰ÍÀº, Çʵå Ä«¿îÆ®¸¦ °¡ÁöÁö ¾Ê´Â Á¡À» Á¦¿ÜÇϰí´Â, Åë»óÀÇ Çʵå¿Í °°½À´Ï´Ù. ƯÈ÷ ±æÀÌ ¿öµå—°¡ Àֱ⠶§¹®¿¡, °í»ýÇÏ´Â ÀÏ ¾øÀÌ, 4¹ÙÀÌÆ®ÀÇ OIDµµ 8¹ÙÀÌÆ®ÀÇ OIDµµ Ãë±ÞÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç, À̰Ϳ¡ ÀÇÇØ, ¹Ù¶÷Á÷ÇÏ´Ù°í ÆÇ´ÜµÇ¸é, OID¸¦ NULL·Î¼­ Ç¥½ÃÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

ÆÄÀÏ Æ®·¹ÀÏ·¯

ÆÄÀÏ Æ®·¹ÀÏ·¯´Â,-1À» Æ÷ÇÔÇÑ, 16 ºñÆ®ÀÇ Á¤¼ö ¿öµå·Î ±¸¼ºµË´Ï´Ù. Æ©ÇÃÀÇ Çʵå Ä«¿îÆ® ¿öµå¸¦ »ç¿ëÇϸé, ÀÌ ¿öµå¸¦ ¿ëÀÌÇÏ°Ô ºÐº°ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

ÀÐ´Â Ãø¿¡¼­´Â, Çʵå Ä«¿îÆ® ¿öµå°¡¡ª1¿¡¼­µµ, ¶Ç´Â »óÁ¤ÇÑ ¿­ÀÇ ¼öµµ ¾Æ´Ï¾ú´ø °æ¿ì´Â ¿¡·¯¸¦ º¸°íÇØ¾ß ÇÕ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, ¾î¶°ÇÑ ÀÌÀ¯·Î½á µ¥ÀÌÅÍ¿ÍÀÇ µ¿±â°¡ ÀâÈ÷Áö ¾Ê°Ô µÈ °ÍÀ» ÆÇÁ¤Çϴ Ưº°ÇÑ °Ë»ç¸¦ ½Ç½ÃÇÕ´Ï´Ù.

¿¹

´ÙÀ½ÀÇ ¿¹¿¡¼­´Â, ÇÊµå ´Ü¶ô ¹®Àڷμ­ ¼¼·ÎÀÇ °ðÀº ¼±(|)À» »ç¿ëÇØ Å×À̺íÀ» Ŭ¶óÀÌ¾ðÆ®¿¡ º¹»çÇÕ´Ï´Ù.

COPY country TO STDOUT WITH DELIMITER '|';

ÆÄÀϷκÎÅÍcountryÅ×ÀÌºí¿¡ µ¥ÀÌÅ͸¦ º¹»çÇÕ´Ï´Ù.

COPY country FROM '/usr1/proj/bray/sql/country_data';

À̸§ÀÌ'A'·Î ½ÃÀ۵Ǵ ³ª¶ó¸¸À» ÆÄÀÏ¿¡ º¹»çÇÕ´Ï´Ù.

COPY (SELECT * FROM country WHERE country_name LIKE 'A%') TO '/usr1/proj/bray/sql/a_list_countries.copy';

À̰ÍÀºSTDIN·ÎºÎÅÍ Å×ÀÌºí¿¡ º¹»çÇϴµ¥ ÀûÇÕÇÑ µ¥ÀÌÅÍÀÇ ¿¹ÀÔ´Ï´Ù

AF      AFGHANISTAN
AL      ALBANIA
DZ      ALGERIA
ZM      ZAMBIA
ZW      ZIMBABWE

°¢ ÇàÀÇ °ø¹é ¹®ÀÚ´Â ½ÇÁ¦·Î´Â ÅÇ ¹®ÀÚÀÎ °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.

ÀÌÇÏ´Â µ¿ÀÏÇÑ µ¥ÀÌÅ͸¦ ¹ÙÀ̳ʸ® ¼­½Ä¿¡¼­ Ãâ·ÂÇÑ °ÍÀÔ´Ï´Ù. µ¥ÀÌÅ͸¦ Unix À¯Æ¿¸®Æ¼od -c¸¦ »ç¿ëÇØ ÇÊÅ͸µ ÇÑ °ÍÀ» ³ªÅ¸³À´Ï´Ù. Å×ÀÌºí¿¡´Â 3¿­ ÀÖ¾î, ÃÖÃÊÀÇ µ¥ÀÌÅÍÇüÀºchar(2), 2¹øÂ°´Âtext, 3¹øÂ°´ÂintegerÀÔ´Ï´Ù. ¸ðµç ÇàÀÇ 3 ¹øÂ° ¿­Àº NULL°ªÀÔ´Ï´Ù.

0000000   P   G   C   O   P   Y  \n 377  \r  \n  \0  \0  \0  \0  \0  \0
0000020  \0  \0  \0  \0 003  \0  \0  \0 002   A   F  \0  \0  \0 013   A
0000040   F   G   H   A   N   I   S   T   A   N 377 377 377 377  \0 003
0000060  \0  \0  \0 002   A   L  \0  \0  \0 007   A   L   B   A   N   I
0000100   A 377 377 377 377  \0 003  \0  \0  \0 002   D   Z  \0  \0  \0
0000120 007   A   L   G   E   R   I   A 377 377 377 377  \0 003  \0  \0
0000140  \0 002   Z   M  \0  \0  \0 006   Z   A   M   B   I   A 377 377
0000160 377 377  \0 003  \0  \0  \0 002   Z   W  \0  \0  \0  \b   Z   I
0000200   M   B   A   B   W   E 377 377 377 377 377 377

ȣȯ¼º

Ç¥ÁØ SQL¿¡´ÂCOPY¹®Àº ¾ø½À´Ï´Ù.

ÀÌÇÏÀÇ ±¸¹®Àº,PostgreSQL7.3¹öÁ¯ ÀÌÀü¿¡ »ç¿ëµÇ°í ÀÖ´ø °ÍÀ¸·Î, ¾ÆÁ÷ Áö¿øµÇ°í ÀÖ½À´Ï´Ù.

COPY [ BINARY ] 
tablename
 [ WITH OIDS ]
    FROM { '
filename
' | STDIN }
    [ [USING] DELIMITERS '
delimiter
' ]
    [ WITH NULL AS '
null string
' ]

COPY [ BINARY ] 
tablename
 [ WITH OIDS ]
    TO { '
filename
' | STDOUT }
    [ [USING] DELIMITERS '
delimiter
' ]
    [ WITH NULL AS '
null string
' ]