50 筆記 MySQL學習 利用事務處理保證語句

2021-08-10 23:03:48 字數 1509 閱讀 4938

50.筆記 mysql學習——利用事務處理保證語句

要使用事務,必須選擇支援事務處理的儲存引擎,如innodb.

預設情況下,mysql執行模式是自動提交的,如果要顯示提交可以禁用自動提交模式。

最後用commit語句結束事務,讓修改持久化,或者讓rollback語句撤銷所有的更改。

例如:建立表:

mysql> create table d (name char(20),unique(name)) engine=innodb;

query ok, 0 rows affected (0.01 sec)

開始事務處理:

mysql> start transaction;

query ok, 0 rows affected (0.00 sec)

mysql> insert into d set name='william';

query ok, 1 row affected (0.00 sec)

mysql> insert into d set name='wallace';

query ok, 1 row affected (0.00 sec)

mysql> commit;

query ok, 0 rows affected (0.00 sec)

mysql> select * from d;

| name   |

| wallace |

| william |

2 rows in set (0.00 sec)

在commit之前,如果在其他會話檢視的話是看不到的插入的表的。

利用set語句直接操作自動提交模式的狀態:

set autocommit =0;

設定為0,可以禁用自動提交模式,直到呼叫commit或rollback。

先刪除表中內容如下:

mysql> truncate table d;

query ok, 0 rows affected (0.03 sec)

mysql> set autocommit=0;

query ok, 0 rows affected (0.00 sec)

mysql> insert into d set name='william';

query ok, 1 row affected (0.00 sec)

mysql> insert into d set name='wallace';

query ok, 1 row affected (0.00 sec)

mysql> commit;

query ok, 0 rows affected (0.00 sec)

重新啟用自動提交模式,執行如下:

mysql> set autocommit=1;

query ok, 0 rows affected (0.00 sec)

通常情況下,那些用來建立、更改或刪除資料庫或其中的物件的資料定義語言(ddl)語句,以及那些與鎖定有關的語句都不能成為事務的一部分。

9 筆記 MySQL學習 處理日期

9.筆記 mysql學習 處理日期 mysql支援多種型別的日期運算 l 按日期排序 l 搜尋特定日期或日期範圍 l 從日期值裡提取各組成部分 l 計算兩個日期之間的時間差 l 通過將乙個日期加上或減去乙個時間間隔 處理日期 查詢某一天的記錄 mysql select from grade even...

MYSQL中預設隱式事務及利用事務DML

一 預設情況下,mysql採用autocommit模式執行。這意味著,當您執行乙個用於更新 修改 表的語句之後,mysql立刻把更新儲存到磁碟中。預設級別為不可重複讀。二 會造成隱式提交的語句 以下語句 以及同義詞 均隱含地結束乙個事務,似乎是在執行本語句前,您已經進行了乙個commit。1 alt...

20 筆記 MySQL學習 InnoDB儲存引擎

20.筆記 mysql學習 innodb儲存引擎 innodb儲存引擎是mysql的預設引擎。有幾項功能 n 其表在執行提交和回滾操作時是事務安全的。n 在系統崩潰後可以自動恢復 n 外來鍵和引用完整性支援,包括級聯刪除和更新 n 基於行級別的鎖定和多版本化 n 從mysql 5.6開始,innod...