+ All Categories
Home > Technology > MySQL Transactions

MySQL Transactions

Date post: 25-Jan-2015
Category:
Upload: reggie-niccolo-santos
View: 1,837 times
Download: 2 times
Share this document with a friend
Description:
MySQL Transactions - Definition - Sample scenario - Properties (ACID) - Syntax - Example
16
MySQL Transactions Reggie Niccolo Santos UP ITDC
Transcript
Page 1: MySQL Transactions

MySQL TransactionsReggie Niccolo Santos

UP ITDC

Page 2: MySQL Transactions

Outline

What are transactions? Sample scenario Properties (ACID) Syntax Example

Page 3: MySQL Transactions

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

Page 4: MySQL Transactions

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

Page 5: MySQL Transactions

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

Page 6: MySQL Transactions

Sample Scenario

The SQL statement to debit SB a/c is as follows:

UPDATE sb_accountsSET balance = balance - 1000WHERE account_no = 932656;

Page 7: MySQL Transactions

Sample Scenario

The SQL statement to credit CA a/c is as follows:

UPDATE ca_accountsSET balance = balance + 1000WHERE account_no = 933456;

Page 8: MySQL Transactions

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);

Page 9: MySQL Transactions

Sample Scenario

The SQL statement for End Transaction is as follows:

COMMIT WORK;

Page 10: MySQL Transactions

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

Page 11: MySQL Transactions

Properties (ACID)

Consistency Ensures that the database

properly changes states upon a successfully committed transaction

Page 12: MySQL Transactions

Properties (ACID)

Isolation Enables transactions to operate

independently of and transparent to each other

Page 13: MySQL Transactions

Properties (ACID)

Durability Ensures that the result or effect

of a committed transaction persists in case of a system failure

Page 14: MySQL Transactions

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}

Page 15: MySQL Transactions

Example

START TRANSACTION;

SELECT @A:=SUM(salary) FROM employee_salary WHERE type=1;

UPDATE salary_report SET summary=@A WHERE type=1;

COMMIT;


Recommended