mysql transactions
DESCRIPTION
MySQL Transactions - Definition - Sample scenario - Properties (ACID) - Syntax - ExampleTRANSCRIPT
MySQL TransactionsReggie Niccolo Santos
UP ITDC
Outline
What are transactions? Sample scenario Properties (ACID) Syntax Example
What are transactions?
Sequential group of DML statements, which is performed as if it were one single work unit
Will never complete unless each individual operation within the group is successful. If any operation within the transaction fails, the entire transaction will fail
What are transactions?
Begins with the first executable SQL statement
Ends when it is committed or rolled back, either explicitly with a COMMIT or ROLLBACK statement or implicitly when a DDL statement is issued
Sample Scenario
Suppose a bank customer transfers money from his savings account (SB a/c) to his current account (CA a/c), the statement will be divided into four blocks:
Debit SB a/c Credit CA a/c Record in Transaction Journal End Transaction
Sample Scenario
The SQL statement to debit SB a/c is as follows:
UPDATE sb_accountsSET balance = balance - 1000WHERE account_no = 932656;
Sample Scenario
The SQL statement to credit CA a/c is as follows:
UPDATE ca_accountsSET balance = balance + 1000WHERE account_no = 933456;
Sample Scenario
The SQL statement for recording in the transaction journal is as follows:
INSERT INTO journal VALUES (100896, 'Transaction on Benjamin Hampshair a/c', '26-AUG-08' 932656, 933456, 1000);
Sample Scenario
The SQL statement for End Transaction is as follows:
COMMIT WORK;
Properties (ACID)
Atomicity Ensures that all operations
within the work unit are completed successfully; otherwise, the transaction is aborted at the point of failure and previous operations are rolled back to their former state
Properties (ACID)
Consistency Ensures that the database
properly changes states upon a successfully committed transaction
Properties (ACID)
Isolation Enables transactions to operate
independently of and transparent to each other
Properties (ACID)
Durability Ensures that the result or effect
of a committed transaction persists in case of a system failure
Syntax
START TRANSACTION [transaction_characteristic [, transaction_characteristic] ...]
transaction_characteristic: WITH CONSISTENT SNAPSHOT | READ WRITE | READ ONLY
BEGIN [WORK]COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
SET autocommit = {0 | 1}
Example
START TRANSACTION;
SELECT @A:=SUM(salary) FROM employee_salary WHERE type=1;
UPDATE salary_report SET summary=@A WHERE type=1;
COMMIT;
References Http://www.tutorialspoint.com/mysql/mysql-transa
ctions.htm Http://www.w3resource.com/mysql/mysql-transacti
on.php