| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Fast Forward | Next | |
BEGIN [ WORK | TRANSACTION ] [
transaction_mode
[, ...] ]
transaction_mode
´Â ÀÌÇÏÁßÀÇ Çϳª¿¡.
ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
READ WRITE | READ ONLY
BEGIN´Â Æ®·£Àè¼Ç ºí·ÏÀ» ÃʱâÈÇÕ´Ï´Ù. BEGINÄ¿¸àµå ÀÌÈÄÀÇ ¸í·É¹®Àº ¸ðµÎ, ¸í½ÃÀûÀÎ COMMIT ȤÀº ROLLBACK ÀÌ ÁÖ¾îÁú ¶§±îÁö, ´ÜÀÏÀÇ Æ®·£Àè¼Ç¿¡¼ ½ÇÇàµË´Ï´Ù. ±âº»°ª(BEGIN°¡ ¾ø´Â °æ¿ì)Àº, PostgreSQL´Â Æ®·£Àè¼Ç¸¦ "¿ÀÅä Ä¿¹Ô"À¸·Î ½ÇÇàÇÕ´Ï´Ù. Áï, °¢ ¹®Àº °¢°¢ °íÀ¯ÀÇ Æ®·£Àè¼Ç¿¡¼ ½ÇÇàµÇ¾î, ¸í·É¹®ÀÇ ¸¶Áö¸·¿¡¼ ¾Ï¹¬ÀûÀ¸·Î Ä¿¹ÔÀÌ ½ÇÇàµË´Ï´Ù (À̰ÍÀº ½ÇÇàÀÌ ¼º°øÇßÀ» °æ¿ìÀÔ´Ï´Ù. ½ÇÆÐÇßÀ» °æ¿ì´Â ·Ñ¹é(rollback) µË´Ï´Ù).
Æ®·£Àè¼Ç ºí·Ï³»¿¡¼, ¸í·É¹®Àº º¸´Ù ½Å¼ÓÈ÷ ½ÇÇàµË´Ï´Ù. ¿Ö³ÄÇϸé, Æ®·£Àè¼ÇÀÇ ½ÃÀÛÀ̳ª Ä¿¹ÔÀº, CPU¿Í µð½ºÅ©¿¡ ²Ï ³ôÀº ºÎÇϸ¦ ¿ä±¸Çϱ⠶§¹®ÀÔ´Ï´Ù. ¶Ç, 1°³ÀÇ Æ®·£Àè¼ÇÀ¸·Î º¹¼öÀÇ ¸í·É¹®À» ½ÇÇàÇÏ´Â °ÍÀº, º¹¼öÀÇ °ü·Ã Å×À̺íÀ» °»½ÅÇÒ ¶§, È®½ÇÇÑ Àϰü¼º À¯Áö¿¡ µµ¿òÀÌ µË´Ï´Ù. °ü·ÃµÈ °»½ÅÀÌ ¿Ï·áµÇÁö ¾ÊÀº Áß°£ÀûÀÎ »óŸ¦, ´Ù¸¥ ¼¼¼ÇÀ¸·ÎºÎÅÍ ÂüÁ¶ÇÒ ¼ö ¾ø°Ô µÇ±â ¶§¹®ÀÔ´Ï´Ù.
°Ý¸®¼öÁØ, ¶Ç´Â Àаí/¾²±â ¸ðµå°¡ ÁöÁ¤µÈ °æ¿ì, »õ·Î¿î Æ®·£Àè¼ÇÀº SET TRANSACTION ÀÌ ½ÇÇàµÇ¾úÀ» ¶§¿Í °°Àº Ư¼ºÀ» °¡Áý´Ï´Ù.
»ý·« °¡´ÉÇÑ Å°¿öµåÀÔ´Ï´Ù. ¾Æ¹«°Íµµ È¿·ÂÀÌ ¾ø½À´Ï´Ù.
ÀÌ ¸í·É¹®ÀÇ ¶Ç ´Ù¸¥ ¸Å°³º¯¼ö¿¡ ´ëÇØ¼´Â , SET TRANSACTION À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
START TRANSACTION ¿¡´Â, BEGIN¿Í °°Àº ±â´ÉÀÌ ÀÖ½À´Ï´Ù.
Æ®·£Àè¼ÇÀ» Á¾·á½ÃŰ·Á¸é, COMMIT ¶Ç´Â ROLLBACK À» »ç¿ëÇØ ÁÖ¼¼¿ä.
Æ®·£Àè¼Ç ºí·Ï³»¿¡¼ BEGIN¸¦ ¹ßÇàÇϸé, °æ°í ¸Þ¼¼Áö°¡ Ç¥½ÃµË´Ï´Ù. ´Ù¸¸, Æ®·£Àè¼Ç »óÅ¿¡´Â ¿µÇâÀÌ ¾ø½À´Ï´Ù. Æ®·£Àè¼Ç ºí·Ï³»¿¡¼ Æ®·£Àè¼ÇÀ» ³ÖÀ¸·Á¸é, ¼¼ÀÌºê Æ÷ÀÎÆ®¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä (ÀÚ¼¼ÇÑ °ÍÀº SAVEPOINT À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä).
ȣȯ¼ºÀ» À§ÇØ, ¿¬¼ÓÇÏ´Â transaction_modes °£ÀÇ ½°Ç¥´Â »ý·« ÇÒ ¼ö ÀÖ½À´Ï´Ù.
BEGIN´Â PostgreSQLÀÇ È®ÀåÀÔ´Ï´Ù. Ç¥ÁØ SQLÀÇ START TRANSACTION ¸í·É°ú µ¿ÀÏÇÕ´Ï´Ù. ÀÌ ÂüÁ¶ ÆäÀÌÁö¿¡´Â ȣȯ¼º¿¡ °üÇÑ »ó¼¼ÇÑ Á¤º¸°¡ Æ÷ÇԵ˴ϴÙ.
µ¡ºÙ¿© ¸»ÇÏÀÚ¸é, ÀÓº£µðµå SQL¿¡¼´Â BEGIN¶ó´Â Ű¿öµå¸¦ ´Ù¸¥ ¸ñÀûÀ¸·Î »ç¿ëÇϰí ÀÖ½À´Ï´Ù. µ¥ÀÌÅͺ£À̽º ¾îÇø®ÄÉÀ̼ÇÀ» À̽ÄÇÒ ¶§, Æ®·£Àè¼ÇÀÇ Àǹ̷Π»ç¿ëµÇ°í ÀÖ´ÂÁö¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.