~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to docs/transactional.rst

modified transaction docs

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
   rollback 
10
10
   savepoints
11
11
 
12
 
Drizzle is a transactional database by default and by design. It collects operations that form tasks and stores them as a single operation, or if that operation is not possible it removes all changes attempted. Transactions are controlled via START TRANSACTION, ROLLBACK, and COMMIT. Savepoints are implemented to allow for a low leverl of granulairty.
 
12
Drizzle is a transactional database by default and by design, meaning that changes and queries to the database appear to be Atomic, Consistent, Isolated, and Durable (ACID). This means that Drizzle implements `serializable <http://en.wikipedia.org/wiki/Serializability>`_, ACID transactions, even if the transaction is interrupted. Interruptions could include a program crash, an operating system failure, or loss of power to a computer. 
 
13
 
 
14
It collects operations that form tasks and stores them as a single operation, or if that operation is not possible it removes all changes attempted. Transactions are controlled via START TRANSACTION, ROLLBACK, and COMMIT. Savepoints are implemented to allow for a low leverl of granulairty.
13
15
 
14
16
A COMMIT statement ends a transaction within Drizzle and makes all changes visible to other users.  The order of events is typically to issue a START TRANSACTION statement, execute one or more SQL statements, and then issue a COMMIT statement. Alternatively, a ROLLBACK statement can be issued, which undoes all the work performed since START TRANSACTION was issued. A COMMIT statement will also release any existing savepoints that may be in use.
15
17
 
16
 
Drizzle can operate in an autocommit mode, where each statement is committed, via:
 
18
Drizzle can operate in an autocommit mode, where each statement is committed, via: ::
17
19
 
18
 
SET AUTOCOMMIT= 1
 
20
        SET AUTOCOMMIT= 1
19
21
 
20
22
Currently DDL operations are performed as a single transaction, this limitation will be lifted in the future.
21
23