使用事務處型功能時,涉及3個重要的命令BEGIN、COMMIT和ROLLBACK,它們的語法分別以下。html
- 聲明事務處理開始---BEGIN (或者START TRANSACTION)
- 提交整個事務---COMMIT
- 回滾到事務開始的狀態---ROOLBACK
下面咱們演示一下在事務處理中刪除表user的所有數據,而後用ROLLBACK命令看是否能恢復到事務開始前的初始狀態,具體步驟以下。mysql
一、首先將表user的存儲引擎修改成[InnoDB] 。sql
- mysql> ALTER TABLE user ENGINE=Innodb;
- Query OK, 2 rows affected (0.20 sec)
- Records: 2 Duplicates: 0 Warnings: 0
二、確認表user中的數據。編程
- mysql> SELECT * FROM user \G
- *************************** 1. row ***************************
- mid: 1
- name: zhangsan
- scx: 0
- word: NULL
- *************************** 2. row ***************************
- mid: 2
- name: wangwu
- scx: 1
- word: NULL
- 2 rows in set (0.00 sec)
三、事務開始。htm
- mysql> BEGIN;
- Query OK, 0 rows affected (0.00 sec)
四、刪除表user中的所有數據。事務
- mysql> DELETE FROM user;
- Query OK, 2 rows affected (0.00 sec)
五、再次確認表user中的數據。get
- mysql> SELECT * FROM user \G
- Empty set (0.00 sec)
六、回滾處理.語法
- mysql> ROLLBACK;
- Query OK, 0 rows affected (0.36 sec)
七、確認表user中的數據是否恢復。數據
- mysql> SELECT * FROM user \G
- *************************** 1. row ***************************
- mid: 1
- name: zhangsan
- scx: 0
- word: NULL
- *************************** 2. row ***************************
- mid: 2
- name: wangwu
- scx: 1
- word: NULL
- 2 rows in set (0.00 sec)
能夠看出,最後表user中數據恢復到了初始的狀態。若是將上面的[ROLLBACK]換成[COMMIT],那麼刪除的處理就被提交,不再可恢復,在執行[COMMIT]前仍是須要最後確認一下。db
文章來源uphtm.com網頁編程。轉載請註明出處:http://uphtm.com/database/183.html