9-5.Å×ÀÌºí º´ÇÕ

1.MERGE

µ¥ÀÌÅ͸¦ ¾ÈÀüÇÏ°Ô °ü¸®ÇÏ·Á¸é Á¤±âÀûÀ¸·Î ¹é¾÷À» ¶° µÎ¾î¾ß ÇÑ´Ù. ¶Ç Å×À̺íÀ» ´ë·®À¸·Î º¯°æÇϱâ Àü¿¡µµ Ȥ½Ã ¸ð¸¦ »ç°í¸¦ ¿¹¹æÇϱâ À§ÇØ »çº»À» ¶° µÎ°í º¯°æÇÑ´Ù. ÀÌ·± Àú·± ÀÌÀ¯·Î »çº»¿¡ ´ëÇÑ ÀÛ¾÷À» ÇÒ °æ¿ì°¡ ¸¹´Ù.

µ¥ÀÌÅÍ´Â ´Ã º¯ÇÏ´Â °ÍÀ̾ ½Ã°£ÀÌ È带¼ö·Ï ¿øº»°ú »çº»Àº Â÷ÀÌ°¡ ¸¹ÀÌ ¹ú¾îÁø´Ù. tCity Å×ÀÌºí¿¡ ´ëÇØ ÀÌ·± »óȲÀ» ¸¸µé¾î º¸ÀÚ. µµ½Ã Á¤º¸¸¦ ÀçÁ¶»çÇÒ ¼öµµ ÀÖ°í ½ÃÂ÷¸¦ µÎ°í Á¶»çÇÑ µÎ ¹úÀÇ µ¥ÀÌÅÍ°¡ Á¸ÀçÇÒ ¼öµµ ÀÖ´Ù. ¸ÕÀú »çº»À» ¶á´Ù.

 

¿À¶óŬ, MariaDB : CREATE TABLE tCityNew AS SELECT * FROM tCity;

SQL Server : SELECT * INTO tCityNew FROM tCity;

 

»çº»ÀÎ tCityNew¸¦ ÆíÁýÇÏ¿© ¿©·¯ °¡Áö º¯È­¸¦ ÁÖ¾î º¸ÀÚ. ¼­¿ïÀÇ Àα¸, ºÎ»êÀÇ ¸éÀûÀ» º¯°æÇÏ°í ÃáõÀº »èÁ¦ÇÏ°í ÀÌõÀ» »ðÀÔÇÑ´Ù. µÎ Å×À̺íÀÇ µ¥ÀÌÅÍ°¡ Á¶±Ý¾¿ ´Ù¸£´Ù.

 

UPDATE tCityNew SET popu = 1000 WHERE name = '¼­¿ï';

UPDATE tCityNew SET area = 900 WHERE name = 'ºÎ»ê';

DELETE FROM tCityNew WHERE name = '̵̇';

INSERT INTO tCityNew VALUES ('ÀÌõ',461,21,'n','°æ±â');

»çº»¿¡ ´ëÇÑ ÀÛ¾÷ÀÌ ¹«»çÈ÷ ¿Ï·áµÇ¾ú´Ù¸é º¯°æÇÑ µ¥ÀÌÅ͸¦ ¿øº»À¸·Î ´Ù½Ã °¡Á®¿Â´Ù. Á¤È®ÇÏ°Ô ¶È°°ÀÌ ¸¸µé¾î¾ß ÇÑ´Ù¸é µ¤¾î ½á ¹ö¸®¸é µÇÁö¸¸ ¶§·Î´Â ¼±º°ÀûÀ¸·Î °¡Á®¿Í¾ß ÇÒ ¶§µµ ÀÖ´Ù. µÎ Å×À̺íÀ» µ¿±âÈ­ÇÏ·Á¸é ¹¹°¡ ¹Ù²î¾ú´ÂÁö ÀÏÀÏÀÌ »ìÆ캸°í ¹Ù²ï °Ç UPDATEÇÏ°í Áö¿î °Ç ´Ù½Ã INSERTÇØ¾ß ÇÑ´Ù. 

ÀÌ·± ¼º°¡½Å ÀÛ¾÷À» Çѹ濡 ÇØÁÖ´Â ¸í·ÉÀÌ MERGEÀÌ´Ù. ºñ±³, »ðÀÔ, °»½ÅÀ» Çѹ濡 ÇØ Áشٰí Çؼ­ UPSERT¶ó°íµµ ºÎ¸¥´Ù. µÎ Å×ÀÌºí¿¡ ´ëÇØ ¿©·¯ °¡Áö ¿¬»êÀ» ¼öÇàÇϴµ¥´Ù Á¶°Ç°ú °¢ °æ¿ìÀÇ µ¿ÀÛÀÌ ´Þ¶ó ±âº» Çü½ÄÀÌ º¹ÀâÇÏ´Ù.

 

MERGE INTO Ÿ°Ù USING ¼Ò½º ON (ÀÏÄ¡Á¶°Ç)

WHEN MATCHED THEN

UPDATE ...

DELETE ...

WHEN NOT MATCHED THEN

INSERT ...

 

INTO ´ÙÀ½¿¡ Ÿ°Ù, USING ´ÙÀ½¿¡ ¼Ò½º Å×À̺íÀ» ÁöÁ¤ÇÑ´Ù. Å×ÀÌºí ´ë½Å ºä¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ°í ¼Ò½º´Â Å×À̺íÀ» »ý¼ºÇÏ´Â ¼­ºêÄõ¸®µµ °¡´ÉÇÏ´Ù. ON Àý¿¡´Â µÎ Å×À̺íÀ» ºñ±³ÇÒ Á¶°ÇÀ» ÁöÁ¤ÇÑ´Ù. µÎ Å×À̺íÀÇ ·¹Äڵ带 ¼ø¼­´ë·Î ºñ±³ÇÏ¿© ÀÏÄ¡Çϸé MATCHEDÀÇ ¸í·ÉÀ» ½ÇÇàÇÏ°í ±×·¸Áö ¾ÊÀ¸¸é NOT MATCHEDÀÇ ¸í·ÉÀ» ½ÇÇàÇÑ´Ù.

Á¶°ÇÀÌ ÀÏÄ¡ÇÏ¸é °°Àº ·¹ÄÚµå¶ó´Â ¶æÀ̹ǷΠUPDATE ¹®À¸·Î ÇÊ¿äÇÑ Çʵ带 º¹»çÇÏ¿© µ¿±âÈ­ÇÑ´Ù. ¶Ç´Â DELETE ¹®À¸·Î ¼Ò½º¿¡ ¾ÆÁ÷ ³²¾Æ ÀÖ´Â ·¹Äڵ带 Ÿ°Ù¿¡¼­ Áö¿ï ¼öµµ ÀÖ´Ù. Á¶°ÇÀÌ ÀÏÄ¡ÇÏÁö ¾ÊÀ¸¸é ¼Ò½º¿¡¸¸ ÀÖ°í Ÿ°Ù¿¡´Â ¾ø¾ú´ø ·¹ÄÚµåÀ̹ǷΠ»õ·Î »ðÀÔÇÏ¿© µ¿±âÈ­ÇÑ´Ù.

tCityNew´Â tCityÀÇ »çº»À» ¶á ÈÄ ÀϺΠ·¹Äڵ带 º¯°æÇÑ °ÍÀÌ¸ç ´õ ÃÖ½ÅÀÇ µ¥ÀÌÅ͸¦ °¡Áö°í ÀÖ´Ù. ÀÌÁ¦ tCityNewÀÇ º¯°æµÈ µ¥ÀÌÅ͸¦ tCity¿¡ º´ÇÕÇØ º¸ÀÚ. ÀÌ °æ¿ì´Â tCity°¡ Ÿ°ÙÀÌ°í tCityNew°¡ ¿øº»ÀÌ´Ù. ´ÙÀ½ ¸í·ÉÀ» ÀÛ¼ºÇÑ´Ù.

 

MERGE INTO tCity T USING tCityNew S ON (S.name = T.name)

WHEN MATCHED THEN

     UPDATE SET T.area = S.area, T.popu = S.popu

WHEN NOT MATCHED THEN

     INSERT VALUES (S.name, S.area, S.popu, S.metro, S.region);

 

ÀÏÄ¡ Á¶°ÇÀº µÎ Å×À̺íÀÇ name Çʵ带 »ç¿ëÇÑ´Ù. ±âº»Å°´Â Àß º¯°æÇÏÁö ¾Ê¾Æ Å×ÀÌºí°£ÀÇ ºñ±³¿¡ ÀûÇÕÇÏ´Ù. µÎ Å×À̺íÀÇ ·¹Äڵ带 ºñ±³ÇÏ¿© À̸§ÀÌ ÀÏÄ¡ÇÏ¸é ¸éÀû°ú Àα¸¼ö¸¦ ¿øº»¿¡¼­ Ÿ°ÙÂÊÀ¸·Î ´ëÀÔÇÑ´Ù. ¸ðµç Çʵ带 ´Ù º¹»çÇÒ ÇÊ¿ä´Â ¾øÀ¸¸ç ÁÖ·Î ¹Ù²î´Â Çʵ常 º¹»çÇÏ¸é µÈ´Ù. µµ½Ã Á¤º¸¸¦ ÀçÁ¶»çÇصµ À¢¸¸Çؼ­´Â ¼Ò¼Ó Áö¿ªÀÌ ¹Ù²îÁö´Â ¾Ê´Â´Ù.

ÀÌ Ã³¸®¿¡ ÀÇÇØ »õ·Î Á¶»çÇÑ ¼­¿ïÀÇ Àα¸¼ö¿Í ºÎ»êÀÇ ¸éÀûÀ» Ÿ°Ù¿¡ ¾÷µ¥ÀÌÆ®ÇÑ´Ù. ¾÷µ¥ÀÌÆ®ÇÒ ´ë»ó Å×À̺íÀº ´ç¿¬È÷ Ÿ°ÙÀ̹ǷΠUPDATE ¹®¿¡ Å×À̺í¸íÀ» ÀûÀ» ÇÊ¿ä ¾ø´Ù. ¶ÇÇÑ ºñ±³ Á¶°Ç¿¡ ÀÏÄ¡ÇÏ´Â ·¹Äڵ带 ÀÌ¹Ì Ã£¾ÒÀ¸¹Ç·Î WHERE Àýµµ ÇÊ¿ä ¾ø´Ù. ¾î¶² Çʵ带 °¡Á®¿Ã °ÍÀÎÁö¸¸ ÁöÁ¤ÇÏ¸é µÈ´Ù.

À̸§ÀÌ ÀÏÄ¡ÇÏÁö ¾ÊÀ» °æ¿ì´Â »õ·Î »ðÀÔÇÑ´Ù. ¿øº»¿¡ »õ·Î »ðÀÔÇÑ ÀÌõÀº Ÿ°Ù¿¡ ¿ø·¡ ¾ø¾ú´ø ·¹ÄÚµåÀÌ¸ç »ðÀÔÇÏ¿© µ¿±âÈ­ÇÑ´Ù. ¿øº»¿¡¼­ »èÁ¦ÇÑ ÃáõÀº Ÿ°Ù¿¡´Â ±×´ë·Î ³²¾Æ ÀÖÀ¸¹Ç·Î º° 󸮸¦ ÇÏÁö ¾Ê´Â´Ù. º´ÇÕ ÈÄ tCityÀÇ ·¹ÄÚµå °³¼ö´Â 9°³°¡ µÈ´Ù. ¾î¶² °ªÀÌ ¾îµð·Î À̵¿ÇÏ´ÂÁö Á¤¸®ÇØ º¸ÀÚ.

MERGE´Â µÎ Å×À̺íÀÇ name Çʵ带 ¼ø¼­´ë·Î ºñ±³ÇÑ´Ù. ¾çÂÊ¿¡ ¸ðµÎ ÀÖ´Â ¼­¿ïÀ» ¸ÕÀú ã¾Æ Àα¸¿Í ¸éÀûÀ» º¹»çÇÑ´Ù. ´ÙÀ½À¸·Î ºÎ»êÀ» ã¾Æ ¿ª½Ã µÎ Çʵ带 º¹»çÇÑ´Ù. ¿À»ê, ûÁÖ, ÀüÁÖ µîÀº º¯È­´Â ¾øÁö¸¸ ¾çÂÊ ¸ðµÎ¿¡ ÀÖÀ¸¹Ç·Î °°Àº °ªÀ» ´Ù½Ã µ¤¾î ¾´´Ù.

ÀÌõÀº ¿øº»¿¡¸¸ ÀÖ°í Ÿ°Ù¿¡´Â ¾øÀ¸´Ï »õ·Î »ðÀÔÇÑ ·¹ÄÚµåÀÓÀ» ¾Ë ¼ö ÀÖ´Ù. ¿øº»¿¡ ¾ø´Â Á¤º¸ÀÌ´Ï UPDATE·Î °»½ÅÇÒ ¼ö´Â ¾ø´Ù. NOT MATCHED¿¡¼­ ÀÌ ·¹ÄÚµåÀÇ Çʵ带 Àоî Ÿ°Ù¿¡ »ðÀÔÇÑ´Ù. º´ÇÕÀ» ¿Ï·áÇÑ ÈÄÀÇ tCity´Â ¿ø·¡ Á¤º¸¿¡ tCityNewÀÇ ÆíÁýµÈ Á¤º¸¸¦ ÅëÇÕÇÏ¿© °¡Áø´Ù.

¿øº» Å×À̺í Àüü¸¦ ´Ù º´ÇÕÇÏ¸é ½Ã°£ÀÌ ²Ï ¿À·¡ °É¸°´Ù. ¿øº»ÀÇ ÀϺΠÁ¶°Ç¿¡ ¸Â´Â ·¹Äڵ常 º´ÇÕÇÏ°í ½Í´Ù¸é USING Àý¿¡ Å×À̺í¸íÀ» ¹Ù·Î ¾²Áö ¸»°í ¼­ºêÄõ¸®·Î Á¶°ÇÀ» Á¦ÇÑÇÏ¿© ÀϺΠ·¹Äڵ常 ÃëÇÑ´Ù. ¿¹¸¦ µé¾î °æ±âµµ¿¡ ÀÖ´Â µµ½ÃÀÇ Á¤º¸¸¸ º´ÇÕÇÏ°í ½Í´Ù¸é tCityNew¿¡¼­ regionÀÌ °æ±âµµÀÎ ·¹Äڵ常 Àд´Ù.

 

MERGE INTO tCity T USING (SELECT * FROM tCityNew WHERE region = '°æ±â') S ON (S.name = T.name)

....

ÀÌ·¸°Ô ÇÏ¸é ¼­¿ïÀÇ ¸éÀûÀ» °»½ÅÇÏ°í ÀÌõ½Ãµµ »ðÀÔÇÏÁö¸¸ ºÎ»êÀÇ Àα¸¼ö´Â º´ÇÕÇÏÁö ¾Ê´Â´Ù. Å×À̺í Àüü ´ë½Å ¼­ºêÄõ¸®·Î ÀϺΠ·¹Äڵ常 ÀÐÀ¸¸é µÇ´Ï ¾ÆÁÖ ½±´Ù. ±×·¯³ª À߸ø »ý°¢Çϸé ON ÀýÀÌ Á¶°ÇÀÌ´Ï ¿©±â´Ù Á¶°Ç¹®À» ÀÛ¼ºÇÒ À§ÇèÀÌ ÀÖ´Ù.

 

MERGE INTO tCity T USING tCityNew S ON (S.name = T.name AND S.region = '°æ±â')

....

 

ÀÌ ÄÚµå´Â ¿¡·¯ÀÌ´Ù. ON ÀýÀÇ ÀÏÄ¡ Á¶°ÇÀº µÎ Å×À̺íÀÇ ´ëÀÀ ·¹Äڵ带 ã´Â °ÍÀÌÁö º´ÇÕÇÒ ´ë»ó¿¡ ´ëÇÑ Á¶°ÇÀ» ÁöÁ¤ÇÏ´Â °ÍÀÌ ¾Æ´Ï´Ù.

 

ȣȯ¼º üũ

¿À¶óŬÀº MERGE ´ÙÀ½ÀÇ INTO ÀüÄ¡»ç¿Í ON ÀýÀÇ °ýÈ£°¡ ÇʼöÀÌ´Ù. SQL Server´Â µÑ ´Ù ¾ø¾îµµ ¹«¹æÇÏ´Ù. MariaDB´Â ¾ÆÁ÷ MERGE¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù.

 

¿¬½À ¹®Á¦

9.¾Õ ½Ç½À¿¡¼­ ¸¸µé¾ú´ø »çº» tStaff2¸¦ tStaff¿¡ º´ÇÕÇ϶ó.

10.tStaff2ÀÇ ´ë¸®±Þ »ç¿ø¿¡ ´ëÇؼ­¸¸ º´ÇÕÇ϶ó.

2.UPDATE FROM

´ÙÀ½Àº Á» ´õ ´Ü¼øÇÑ ¿¹·Î ½Ç½ÀÀ» ÇØ º¸ÀÚ. µµ½ÃÀÇ Àα¸¸¸ ÀçÁ¶»çÇÑ´Ù¸é ´Ù¸¥ Çʵå´Â ÇÊ¿ä ¾ø°í ¾î´À µµ½ÃÀÇ Àα¸°¡ ¾ó¸¶ÀÎÁö¸¸ ±â·ÏÇÏ¸é µÈ´Ù. ´ÙÀ½°ú °°ÀÌ Àα¸ Á¶»ç¿ë Å×À̺íÀ» °£´ÜÇÏ°Ô µðÀÚÀÎÇÏ°í ¸î °³ µµ½ÃÀÇ Àα¸¸¦ »õ·Î Á¶»çÇß´Ù.

 

CREATE TABLE tCityPopu

(

     name CHAR(10) PRIMARY KEY,

     popu INT NULL

);

 

INSERT INTO tCityPopu VALUES ('¼­¿ï',1000);

INSERT INTO tCityPopu VALUES ('ºÎ»ê',500);

INSERT INTO tCityPopu VALUES ('̵̇',100);

 

ÀÌ·¸°Ô Á¶»çÇÑ Àα¸ Åë°è´Â ÃÖÁ¾ÀûÀ¸·Î tCity Å×ÀÌºí¿¡ º´ÇÕÇÏ¿© °»½ÅÇØ¾ß ÇÑ´Ù. µÎ Å×À̺íÀÌ ¾Æ¹«¸® Ä¿µµ MERGE ¸í·ÉÀ¸·Î °£´ÜÇÏ°Ô º´ÇÕÇÒ ¼ö ÀÖ´Ù.

 

MERGE INTO tCity C USING tCityPopu P ON (C.name = P.name)

WHEN MATCHED THEN UPDATE SET C.popu = P.popu;

 

µÎ Å×À̺íÀ» µµ½Ã¸íÀ¸·Î ºñ±³ÇÏ¿© ÀÏÄ¡ÇÏ´Â Çà¿¡ ´ëÇØ, Áï »õ·Î Á¶»çÇÑ µµ½Ã¿¡ ´ëÇØ popu Çʵ带 Àоî tCityÀÇ Àα¸¸¦ °»½ÅÇÑ´Ù. Á¶»çÇÏÁö ¾ÊÀº µµ½ÃÀÇ Àα¸¼ö´Â ¿ø·¡°ªÀ» °¡Áø´Ù. Àα¸¸¸ Á¶»çÇßÀ¸¹Ç·Î ´Ù¸¥ Çʵå´Â °Çµå¸± ÇÊ¿ä°¡ ¾øÀ¸¸ç ´Ù¸¥ Çʵ尪ÀÌ ÀÖÁöµµ ¾Ê´Ù.

ÀÏÄ¡ÇÏÁö ¾ÊÀ» ¶§ÀÇ µ¿ÀÛµµ ÁöÁ¤ÇÒ ¼ö ÀÖÁö¸¸ º´ÇÕ¸¸ ÇÑ´Ù¸é ±»ÀÌ ±×·² ÇÊ¿ä´Â ¾ø´Ù. ¿øº»¿¡ ¾ø´ø µµ½ÃÀÇ Àα¸¸¦ »õ·Î Á¶»çÇß´Ù¸é »ðÀÔÇØ ³ÖÀ» ¼ö ÀÖÁö¸¸ Àα¸ Á¤º¸¸¸À¸·Î´Â tCity°¡ ¿ä±¸ÇÏ´Â Á¤º¸¸¦ ´Ù ä¿ï ¼ö ¾ø¾î º° Àǹ̰¡ ¾ø´Ù.

MERGE ¸í·É ¿Ü¿¡ SQL Server´Â Å×À̺íÀ» º´ÇÕÇÏ´Â UPDATE FROM ¸í·ÉÀ» Ãß°¡·Î Á¦°øÇÑ´Ù. ±âº» Çü½ÄÀº ´ÙÀ½°ú °°À¸¸ç Ÿ°Ù Å×À̺íÀÇ Çʵ带 ¿øº» Å×À̺íÀÇ Çʵ尪À¸·Î ÀÏ°ý °»½ÅÇÑ´Ù.

 

UPDATE Ÿ°Ù SET Çʵå=¼Ò½º.Çʵå FROM ¼Ò½º WHERE º´ÇÕÁ¶°Ç

 

UPDATE ¹®¿¡´Â ¿ø·¡ FROM ÀýÀÌ ¾øÁö¸¸ ÀÌ °æ¿ì¿¡´Â ¿øº» Å×À̺íÀ» ÁöÁ¤Çϱâ À§ÇØ FROM ÀýÀÌ ¿Â´Ù. FROM Àý¿¡ ºä³ª ¼­ºêÄõ¸®¸¦ ¾µ ¼öµµ ÀÖ´Ù. ´ÙÀ½ ¸í·ÉÀº tCityPopuÀÇ popu(»õ Àα¸¼ö)¸¦ Àоî tCityÀÇ popu(¿ø·¡ Àα¸¼ö)¸¦ °»½ÅÇÑ´Ù.

 

UPDATE tCity SET popu = tCityPopu.popu FROM tCityPopu WHERE tCity.name = tCityPopu.name;

 

º¸°í¼­¿¡ ÀÖ´Â µµ½Ã¸¸ °»½ÅÇϱâ À§ÇØ WHERE Àý¿¡¼­ µÎ Å×À̺íÀÇ µµ½Ã¸íÀÌ °°Àº Çุ ¼±ÅÃÇß´Ù. »õ Å×ÀÌºí¿¡ Á¶»çÇÏÁö ¾ÊÀº µµ½Ã´Â ¿ø·¡°ªÀ» À¯ÁöÇÑ´Ù.

name Çʵ尡 ¾çÂÊ Å×ÀÌºí¿¡ ´Ù ÀÖ¾î ¼Ò¼ÓÀ» ºÐ¸íÈ÷ ¹àÇô¾ß ÇÑ´Ù. Å×ÀÌºí µÎ °³¸¦ ÂüÁ¶ÇÏ´Ù º¸´Ï Äõ¸®¹®ÀÌ ±æ¾îÁö´Âµ¥ FROM ÀýÀÇ Å×ÀÌºí¿¡ º°¸íÀ» ºÙ¿© µÎ¸é Çʵ带 ª°Ô ĪÇÒ ¼ö ÀÖ¾î Æí¸®ÇÏ´Ù.

 

UPDATE tCity SET popu = S.popu FROM tCityPopu AS S WHERE tCity.name = S.name;

 

±×·¯³ª ¿øº» Å×ÀÌºí¿¡´Â º°¸íÀ» ÁÙ ¼ö ¾ø¾î ´ÙÀ½ ±¸¹®Àº ¾ÈµÈ´Ù. UPDATE ´ÙÀ½ÀÇ ´ë»ó Å×À̺íÀº ¿ø·¡ À̸§´ë·Î ½á¾ß ÇÑ´Ù.

 

UPDATE tCity AS T SET T.popu = S.popu FROM tCityPopu AS S WHERE T.name = S.name;

 

°ú°Å ´ë·® ¾÷µ¥ÀÌÆ®½Ã¿¡ °¡²û »ç¿ëÇßÁö¸¸ ´õ ¹ü¿ëÀûÀÌ°í Æí¸®ÇÑ MERGE ¸í·ÉÀÌ µµÀÔµÇ¾î ¿äÁòÀº Àß »ç¿ëÇÏÁö ¾Ê´Â´Ù. SQL Server¸¸ Áö¿øÇÏ¿© ȣȯ¼ºµµ ÁÁÁö ¾Ê°í °»½Å¸¸ ÇÒ »Ó »ðÀÔÀº ÇÏÁö ¸øÇÏ´Â ÇÑ°èµµ ÀÖ´Ù. ±×·¯³ª °ú°Å¿¡ ÀÛ¼ºÇÑ Äõ¸®¸¦ Âü°íÇϱâ À§ÇØ ¸í·É ÀÚü´Â ¾Ë¾Æ µÎ¾î¾ß ÇÑ´Ù.

±×·¸´Ù¸é MariaDBÀÇ °æ¿ì´Â ¾î¶³±î? MariaDB´Â ¾ÆÁ÷ MERGE ¸í·ÉÀ» Áö¿øÇÏÁö ¾ÊÀ¸¸ç UPDATE FROM ¸í·Éµµ ¾ø´Ù. ±×·¸´Ù°í Çؼ­ º´ÇÕÀ» ¸øÇÏ´Â °ÍÀº ¾Æ´Ï¸ç ¿¬°ü ¼­ºêÄõ¸®¸¦ È°¿ëÇÏ¸é µÈ´Ù. ´ÙÀ½ ¸í·ÉÀº ¶È°°Àº 󸮸¦ ÇÏ¸ç ¼¼ DBMS¿¡¼­ ¸ðµÎ Àß µ¿ÀÛÇÑ´Ù.

 

UPDATE tCity SET popu = (SELECT popu FROM tCityPopu P WHERE P.name = tCity.name)

WHERE name IN (SELECT name FROM tCityPopu)

 

»õ Å×ÀÌºí¿¡ ÀÖ´Â µµ½ÃÀÇ Àα¸¼ö¸¦ ÀÐ¾î ¿ø·¡ Å×À̺íÀÇ popu Çʵ带 °»½ÅÇÑ´Ù. WHERE Á¶°ÇÀ» »© ¹ö¸®¸é »õ Å×ÀÌºí¿¡ ¾ø´Â µµ½ÃÀÇ Àα¸°¡ NULL·Î ¹Ù²î¾î ¹ö¸®¹Ç·Î Á¶°ÇÀÌ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. °»½Å ´ë»óÀ» ã±â À§ÇØ, »õ Àα¸¼ö¸¦ ã±â À§ÇØ µÎ °³ÀÇ ¼­ºêÄõ¸®°¡ ÇÊ¿äÇØ ¼º´ÉÀº ±×´ÙÁö ÁÁÁö ¾Ê´Ù.

ÀÌ ¿Ü¿¡ Á¶Àι®À¸·Îµµ º´ÇÕÀ» ó¸®ÇÒ ¼ö ÀÖÀ¸¸ç ¼º´ÉÀº ¿ÀÈ÷·Á ´õ ÁÁ´Ù. ¶È°°Àº ¹®Á¦¶óµµ ÇØ°áÇÏ´Â ¹æ½ÄÀº Ç×»ó ¿©·¯ °¡Áö°¡ ÀÖ´Ù. DBMSÀÇ Áö¿ø ¸í·É Áß¿¡ ¼Óµµ, ºóµµ, ÆíÀǼº µîÀ» °í·ÁÇÏ¿© »óȲ¿¡ °¡Àå ÀûÇÕÇÑ ¹æ¹ýÀ» Àß ¼±ÅÃÇØ »ç¿ëÇÏ¸é µÈ´Ù.