ROLLBACK TO SAVEPOINT

Name

ROLLBACK TO SAVEPOINT -- ¼¼ÀÌºê Æ÷ÀÎÆ®±îÁö ·Ñ¹é(rollback) ÇÑ´Ù

Synopsis

ROLLBACK [ WORK | TRANSACTION ] TO [ SAVEPOINT ] 
savepoint_name

¼³¸í

¼¼ÀÌºê Æ÷ÀÎÆ®ÀÇ ¼³Á¤ ÈÄ¿¡ ½ÇÇàµÈ Ä¿¸àµå¸¦ ¸ðµÎ ·Ñ¹é(rollback) ÇÕ´Ï´Ù. ¼¼ÀÌºê Æ÷ÀÎÆ®´Â À¯È¿ÇÔÀº ±×´ë·Î ³²À¸¹Ç·Î, Çʿ信 µû¶ó¼­, ±× ÈÄ ÀçÂ÷ ·Ñ¹é(rollback) ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

ROLLBACK TO SAVEPOINT´Â ÁöÁ¤ÇÑ ¼¼ÀÌºê Æ÷ÀÎÆ®ºÎÅÍ ÈÄ·Î ¼³Á¤ÇÑ ¸ðµç ¼¼ÀÌºê Æ÷ÀÎÆ®¸¦ ¾Ï¹¬ÀûÀ¸·Î ÆÄ±âÇÕ´Ï´Ù.

¸Å°³º¯¼ö

savepoint_name

·Ñ¹é(rollback)óÀÇ ¼¼ÀÌºê Æ÷ÀÎÆ®ÀÔ´Ï´Ù.

ÁÖ¼®

¼¼ÀÌºê Æ÷ÀÎÆ®ÀÇ ¼³Á¤ ÈÄ¿¡ ½ÇÇàµÈ ¸í·ÉÀÇ °á°ú¸¦ À¯ÁöÇÑ Ã¤·Î ¼¼ÀÌºê Æ÷ÀÎÆ®¸¦ ÆÄ±âÇÏ·Á¸é RELEASE SAVEPOINT ¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä.

¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀº ¼¼ÀÌºê Æ÷ÀÎÆ®ÀÇ À̸§À» ÁöÁ¤ÇÏ¸é ¿¡·¯°¡ µË´Ï´Ù.

Ä¿¼­´Â ¼¼ÀÌºê Æ÷ÀÎÆ®¿¡ ´ëÇØ Æ®·£Àè¼Ç(transaction)ÀÇ ¹Û¿¡ ÀÖ´Â°Í °°ÀÌ ÇൿÇÕ´Ï´Ù. ¼¼ÀÌºê Æ÷ÀÎÆ®ÀÇ ³»ºÎ¿¡¼­ ¿­¸° Ä¿¼­´Â ±× ¼¼ÀÌºê Æ÷ÀÎÆ®°¡ ·Ñ¹é(rollback) ÇßÀ» ¶§ ´ÝÈü´Ï´Ù. ¼¼ÀÌºê Æ÷ÀÎÆ®ÀÇ Àü¿¡ ¿­¸° Ä¿¼­¿¡ ´ëÇØFETCH¸í·ÉÀ» ½ÇÇàÇßÀ» °æ¿ì, ±× ÈÄ, ¼¼ÀÌºê Æ÷ÀÎÆ®±îÁö ·Ñ¹é(rollback) µÇ¾ú´Ù°í ÇØµµ, Ä¿¼­ÀÇ À§Ä¡´ÂFETCHÀÇ °á°ú, À̵¿ÇÑ À§Ä¡·ÎºÎÅÍ ¹Ù²îÁö ¾Ê½À´Ï´Ù (Áï, FETCH´Â ·Ñ¹é(rollback) µÇÁö ¾Ê½À´Ï´Ù). ¶Ç, Ä¿¼­°¡ ´ÝÈ÷´Â °ÍÀº ·Ñ¹é(rollback) ÇØµµ Ãë¼ÒÇÒ ¼ö ¾ø½À´Ï´Ù. Ä¿¼­ÀÇ ½ÇÇà¿¡ ÀÇÇØ Æ®·£Àè¼Ç(transaction)ÀÇ Áß´Ü( abort)°¡ ÀÏÀ¸ÄÑÁ³À» °æ¿ì, ±× Ä¿¼­´Â ½ÇÇà ºÒ°¡´É »óÅ¿¡ ³õÀÔ´Ï´Ù. ÀÌ °æ¿ì, Æ®·£Àè¼Ç(transaction)´Â ROLLBACK TO SAVEPOINT¸¦ »ç¿ëÇØ µÇµ¹¸± ¼ö°¡ ÀÖ½À´Ï´Ù¸¸, ±× Ä¿¼­´Â »ç¿ëÇÒ ¼ö°¡ ¾ø½À´Ï´Ù.

¿¹Á¦

my_savepointÀÇ ¼³Á¤ ÈÄ¿¡ ½ÇÇàµÈ ¸í·ÉÀÇ È¿°ú¸¦ Ãë¼ÒÇÕ´Ï´Ù.

ROLLBACK TO SAVEPOINT my_savepoint;

¼¼ÀÌºê Æ÷ÀÎÆ®¿¡ÀÇ ·Ñ¹é(rollback)ÀÌ Ä¿¼­ À§Ä¡¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê½À´Ï´Ù.

BEGIN;

DECLARE foo CURSOR FOR SELECT 1 UNION SELECT 2;

SAVEPOINT foo;

FETCH 1 FROM foo;
 ?column? 
----------
        1

ROLLBACK TO SAVEPOINT foo;

FETCH 1 FROM foo;
 ?column? 
----------
        2

COMMIT;

ȣȯ¼º

Ç¥ÁØ SQL¿¡¼­´Â SAVEPOINT Ű¿öµå´Â ÇʼöÀÔ´Ï´Ù. ±×·¯³ª PostgreSQL¿ÍOracle¿¡¼­´Â »ý·« ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. SQL·Î »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº,WORK»ÓÀÔ´Ï´Ù. TRANSACTION´Â »ç¿ëÇÏÁö ¸øÇϰí,ROLLBACKÀÇ µÚÀÇ ³ëÀÌÁî ¿öµå·Î¼­ ´Ù·ç¾îÁý´Ï´Ù. ¶Ç, SQL¿¡¼­´Â »ý·« °¡´ÉÇÑAND [ NO ] CHAIN±¸°¡ ÀÖ½À´Ï´Ù. À̰ÍÀºPostgreSQL¿¡¼­´Â ÇöÀç Áö¿øµÇ°í ÀÖÁö ¾Ê½À´Ï´Ù. ±× ¿Ü¿¡ ´ëÇØ¼­´Â ÀÌ ¸í·ÉÀº Ç¥ÁØ SQL¿Í ȣȯ¼ºÀ» °¡Áý´Ï´Ù.

°ü·Ã Ç׸ñ

BEGIN , COMMIT , RELEASE SAVEPOINT , ROLLBACK , SAVEPOINT