Home >> FAQs/Tutorials >> MySQL Tutorials >> Index

MySQL FAQs - Transaction Management: Commit or Rollback

By: FYIcenter.com

Part:   1  2  3   4  5  6  7  8  9  10 

(Continued from previous part...)

How To Start a New Transaction Explicitly?

If you are confused on the implicit new transaction rules, you can always start a new transaction with the "START TRANSACTION" command to start a new transaction explicitly. "START TRANSACTION" command works in both "Autocommit On" and "Autocommit Off" modes.

The following tutorial exercise shows you how to start a transaction explicitly:

>\mysql\bin\mysql -u dev -piyf fyi

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO fyi_links (url, id)
   VALUES ('fyicenter.com', 101);
Query OK, 1 row affected (0.11 sec)

mysql> INSERT INTO fyi_links (url, id)
   VALUES ('centerfyi.com', 110);
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM fyi_links;
+-----+---------------+-------+--------+--------------------
| id  | url           | notes | counts | created           
+-----+---------------+-------+--------+--------------------
| 101 | fyicenter.com | NULL  |   NULL | 2006-07-01 20:27:49
| 110 | centerfyi.com | NULL  |   NULL | 2006-07-01 20:28:10
+-----+---------------+-------+--------+--------------------
2 rows in set (0.07 sec)

mysql> ROLLBACK;
Query OK, 0 rows affected (0.07 sec)

How To Commit the Current Transaction?

If you have used some DML statements updated some data objects, and you want to have the updates to be permanently recorded in the database, you can use the COMMIT command. It will make all the database changes made in the current transaction become permanent and end the current transaction. The following tutorial exercise shows you how to use COMMIT commands:

>\mysql\bin\mysql -u dev -piyf fyi

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO fyi_links (url, id)
   VALUES ('fyicenter.com', 101);
Query OK, 1 row affected (0.11 sec)

mysql> INSERT INTO fyi_links (url, id)
   VALUES ('centerfyi.com', 110);
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM fyi_links;
+-----+---------------+-------+--------+--------------------
| id  | url           | notes | counts | created           
+-----+---------------+-------+--------+--------------------
| 101 | fyicenter.com | NULL  |   NULL | 2006-07-01 20:27:49
| 110 | centerfyi.com | NULL  |   NULL | 2006-07-01 20:28:10
+-----+---------------+-------+--------+--------------------
2 rows in set (0.07 sec)

mysql> COMMIT;
Query OK, 0 rows affected (0.04 sec)

(Continued on next part...)

Part:   1  2  3   4  5  6  7  8  9  10 


Selected Developer Jobs:

More...