In SQL, the COMMIT and ROLLBACK statements are used to manage transactions, ensuring the ACID (Atomicity, Consistency, Isolation, Durability) properties of database operations. These statements are used to confirm or cancel the changes made within a transaction.
Here's how you can use the COMMIT and ROLLBACK statements:
1.COMMIT Statement:
- The
COMMITstatement is used to permanently save the changes made during a transaction. It marks the end of a successful transaction and makes all the changes within the transaction permanent. - Once you issue a
COMMITstatement, there's no way to undo the changes made in the transaction. - It is typically used when a transaction has executed successfully without any errors, and you want to ensure that the changes are saved permanently.
Syntax:
COMMIT;Example:
BEGIN TRANSACTION; -- SQL statements here COMMIT;2.ROLLBACK Statement:
- The
ROLLBACKstatement is used to undo or cancel all the changes made during a transaction. It effectively rolls back the transaction to its starting point. ROLLBACKis used when a transaction encounters an error or doesn't complete as expected. It ensures that no changes are saved to the database.
Syntax:
ROLLBACK;Example:
BEGIN TRANSACTION; -- SQL statements here -- An error occurs ROLLBACK;
Using COMMIT and ROLLBACK:
To use the COMMIT and ROLLBACK statements effectively, follow these guidelines:
Begin a transaction with
BEGIN TRANSACTIONorSTART TRANSACTIONbefore executing the SQL statements within the transaction.Execute the necessary SQL statements within the transaction.
If the transaction completes successfully without errors, issue a
COMMITstatement to make all changes permanent.If any error occurs during the transaction or if you decide to cancel the changes, issue a
ROLLBACKstatement to undo the changes made within the transaction.
Here's a simplified example of a SQL transaction using COMMIT and ROLLBACK:
BEGIN TRANSACTION;UPDATE accounts SET balance = balance - 100 WHERE account_id = 123;INSERT INTO transaction_history (account_id, transaction_type, amount) VALUES (123, 'Withdrawal', 100);-- Check for error condition IF some_condition THEN ROLLBACK; -- Cancel the transaction
ELSE COMMIT; -- Save the transaction
END IF;In this example, if some_condition evaluates to TRUE, the transaction is rolled back, and the changes are not saved. If it's FALSE, the transaction is committed, and the changes become permanent.
No comments:
Post a Comment
If you have any doubts. Please let me know