| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Fast Forward | Next | |
SAVEPOINT´Â, ÇöÀçÀÇ Æ®·£Àè¼Ç(transaction)³»¿¡ »õ·Î¿î ¼¼ÀÌºê Æ÷ÀÎÆ®¸¦ ¼³Á¤ÇÕ´Ï´Ù.
¼¼ÀÌºê Æ÷ÀÎÆ®¿Í´Â Æ®·£Àè¼Ç(transaction)³»¿¡ ºÙÀ̴ Ưº°ÇÑ Ç¥½ÃÀÔ´Ï´Ù. ¼¼ÀÌºê Æ÷ÀÎÆ®¸¦ ¼³Á¤ÇØ µÎ¸é(ÀÚ), ±× ÀÌÈÄ¿¡ ½ÇÇàµÈ Ä¿¸àµå¸¦ ¸ðµÎ ·Ñ¹é(rollback) ÇØ, Æ®·£Àè¼Ç(transaction)¸¦ ¼³Á¤½Ã »óÅ¿¡ µÇµ¹¸± ¼ö°¡ ÀÖ½À´Ï´Ù.
¼¼ÀÌºê Æ÷ÀÎÆ®¸¦ ·Ñ¹é(rollback) ÇÏ·Á¸é ROLLBACK TO SAVEPOINT ¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä. ¼¼ÀÌºê Æ÷ÀÎÆ® ¼³Á¤ ÈÄ¿¡ ÇàÇØÁø ¸í·ÉÀÇ È¿°ú¸¦ º¸°ü À¯ÁöÇÑ Ã¤·Î ¼¼ÀÌºê Æ÷ÀÎÆ®¸¦ ÆÄ±âÇÏ·Á¸é, RELEASE SAVEPOINT ¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä.
¼¼ÀÌºê Æ÷ÀÎÆ®´Â Æ®·£Àè¼Ç(transaction) ºí·ÏÀÇ ¾ÈÂÊ¿¡¸¸ ¼³Á¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. 1°³ÀÇ Æ®·£Àè¼Ç(transaction)¾È¿¡´Â, º¹¼öÀÇ ¼¼ÀÌºê Æ÷ÀÎÆ®¸¦ ¼³Á¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
¼¼ÀÌºê Æ÷ÀÎÆ®¸¦ ¼³Á¤ÇØ, ±× ÈÄ¿¡ ½ÇÇàÇÑ ¸ðµç Ä¿¸àµåÀÇ È¿°ú¸¦ Ãë¼ÒÇÕ´Ï´Ù.
BEGIN;
INSERT INTO table1 VALUES (1);
SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (2);
ROLLBACK TO SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (3);
COMMIT;
»ó±âÀÇ Æ®·£Àè¼Ç(transaction)¿¡¼´Â, 1À¸·Î 3Àº »ðÀԵ˴ϴٸ¸, 2´Â »ðÀÔµÇÁö ¾Ê½À´Ï´Ù.
¼¼ÀÌºê Æ÷ÀÎÆ®¸¦ ¼³Á¤ÇØ, ±× ÈÄ¿¡ ÆÄ±âÇÕ´Ï´Ù.
BEGIN;
INSERT INTO table1 VALUES (3);
SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (4);
RELEASE SAVEPOINT my_savepoint;
COMMIT;
»ó±âÀÇ Æ®·£Àè¼Ç(transaction)¿¡¼´Â 3À¸·Î 4ÀÇ ¾çÂÊ ¸ðµÎ°¡ »ðÀԵ˴ϴÙ.
SQL¿¡¼´Â °°Àº À̸§ÀÇ ¼¼ÀÌºê Æ÷ÀÎÆ®°¡ ¼³Á¤µÇ¾úÀ» ¶§, ÀÚµ¿ÀûÀ¸·Î ¼¼ÀÌºê Æ÷ÀÎÆ®¸¦ ÆÄ±âÇÏ°Ô µÇ¾î ÀÖ½À´Ï´Ù. PostgreSQL¿¡¼´Â ¿À·¡µÈ ¼¼ÀÌºê Æ÷ÀÎÆ®µµ º¸°ü À¯ÁöµÇÁö¸¸, ·Ñ¹é(rollback)³ª ÇØ¹æ½Ã¿¡´Â »õ·Î¿î ¼¼ÀÌºê Æ÷ÀÎÆ®°¡ »ç¿ëµË´Ï´Ù (»õ·Î¿î ¼¼ÀÌºê Æ÷ÀÎÆ®°¡ ÇØ¹æµÇ¸é, ´Ù½ÃROLLBACK TO SAVEPOINT³ªRELEASE SAVEPOINT·ÎºÎÅÍ ¿À·¡µÈ ¼¼ÀÌºê Æ÷ÀÎÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù). ÀÌ Á¡ Àܴ̿Â,SAVEPOINT´Â ¿ÏÀüÇÏ°Ô SQL¿¡ µû¸£°í ÀÖ½À´Ï´Ù.