事務控制語言TCL
#TCL默認為自動提交,如想關閉改成手動提交
set autocommit =false;
#使用rollback回到上一個狀態(如果沒有改成手動提交,TLC默認是自動提交的,rollback是不起作用的)
#autocommit需要設置關閉改成手動提交rollback才得以回滾
#原始狀態
>>>
+------+--------+------+------+
| id | name | age | mony |
+------+--------+------+------+
| 1 | 小明 | 100 | 10 |
| 2 | 大明 | 10 | 100 |
+------+--------+------+------+
#插入一行值
insert into student values(3,'暫時存在',10,100);
>>>
+------+--------------+------+------+
| id | name | age | mony |
+------+--------------+------+------+
| 1 | 小明 | 100 | 10 |
| 2 | 大明 | 10 | 100 |
| 3 | 暫時存在 | 10 | 100 |
+------+--------------+------+------+
#回滾
rollback;
>>>
+------+--------+------+------+
| id | name | age | mony |
+------+--------+------+------+
| 1 | 小明 | 100 | 10 |
| 2 | 大明 | 10 | 100 |
+------+--------+------+------+
#commit = 提交//一旦進行提交,就不能進行回滾了
commit;
#使用savepoint進行節點設置 使用rollback to 返回節點狀態
#原始狀態
>>>
+------+--------+------+------+
| id | name | age | mony |
+------+--------+------+------+
| 1 | 小明 | 100 | 10 |
| 2 | 大明 | 10 | 100 |
+------+--------+------+------+
#對mony進行修改
update student set mony = mony-20 where id=2;
>>>
+------+--------+------+------+
| id | name | age | mony |
+------+--------+------+------+
| 1 | 小明 | 100 | 10 |
| 2 | 大明 | 10 | 80 |
+------+--------+------+------+
#設置節點
savepoint t1;
update student set mony = mony-30 where id=2;
>>>
+------+--------+------+------+
| id | name | age | mony |
+------+--------+------+------+
| 1 | 小明 | 100 | 10 |
| 2 | 大明 | 10 | 50 |
+------+--------+------+------+
#回到t1節點的狀態
rollback to t1;
>>>
+------+--------+------+------+
| id | name | age | mony |
+------+--------+------+------+
| 1 | 小明 | 100 | 10 |
| 2 | 大明 | 10 | 80 |
+------+--------+------+------+
提交//一旦進行提交,就不能進行回滾了
commit;