| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Fast Forward | Next | |
¼¼ÀÌºê Æ÷ÀÎÆ®ÀÇ ¼³Á¤ ÈÄ¿¡ ½ÇÇàµÈ Ä¿¸àµå¸¦ ¸ðµÎ ·Ñ¹é(rollback) ÇÕ´Ï´Ù. ¼¼ÀÌºê Æ÷ÀÎÆ®´Â À¯È¿ÇÔÀº ±×´ë·Î ³²À¸¹Ç·Î, Çʿ信 µû¶ó¼, ±× ÈÄ ÀçÂ÷ ·Ñ¹é(rollback) ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
ROLLBACK TO SAVEPOINT´Â ÁöÁ¤ÇÑ ¼¼ÀÌºê Æ÷ÀÎÆ®ºÎÅÍ ÈÄ·Î ¼³Á¤ÇÑ ¸ðµç ¼¼ÀÌºê Æ÷ÀÎÆ®¸¦ ¾Ï¹¬ÀûÀ¸·Î ÆÄ±âÇÕ´Ï´Ù.
¼¼ÀÌºê Æ÷ÀÎÆ®ÀÇ ¼³Á¤ ÈÄ¿¡ ½ÇÇàµÈ ¸í·ÉÀÇ °á°ú¸¦ À¯ÁöÇÑ Ã¤·Î ¼¼ÀÌºê Æ÷ÀÎÆ®¸¦ ÆÄ±âÇÏ·Á¸é 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¿Í ȣȯ¼ºÀ» °¡Áý´Ï´Ù.