c mysql事務提交及回滾

2021-07-10 08:56:35 字數 1474 閱讀 9803

之前在做有關資料庫的操作時發現,有些內容應該作為乙個事務一起提交,而不是每個都單獨提交,這就需要把這些操作當做乙個事務來處理。而我之前寫過簡單的資料庫的操作,因為mysql預設的是自動提交,我們就需要用到api——mysql_commit()。

mysql_commit(mysql* mysql, my_bool mode);

mode為1時表示on,mode為0時表示off。

在關掉自動提交後,以後我們的操作就需要自己手動提交了,而這就是我們所需要的了,對於一系列的操作,如果都成功了,那我們就把他們提交上去,如果失敗了就執行回滾,這裡需要用到另外兩個api:

mysql_commit()

提 交事務。

mysql_rollback() 

回 滾事務。

示例**:?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

voidmydb::test()

if(mysql_query(connection,sql_2.c_str()))

if(i == 1)

else

mysql_autocommit(connection,on);

}

這個**可以直接用在之前的那篇linux下c++訪問mysql資料庫(2)裡的,因為我之前設定id為主鍵,不能重複,所以最後的結果就是sql_2執行錯誤,之前的操作全部回滾。

我自己做了一些測試,目前還沒有發現什麼問題。

提交事務和回滾事務

9.5 提交事務和回滾事務 提交事務 commit 語句 事務 transaction 測試一下,在mysql中預設的事務行為是怎樣的 mysql預設情況下支援自動提交事務。實際上不符合開發習慣,為了保證資料安全,必須保證同時成功之後再提交 自動提交 每執行一條語句執行一次 怎麼將mysql的自動提...

JAVA設定手動提交事務,回滾事務,提交事務

設定資料庫是否自動提交事務 param flag throws sqlexception public void setautocommit boolean flag throws sqlexception 提交 throws sqlexception public void commit thro...

事務的開啟回滾 提交

mysql use chapter06 database changed mysql create table account id int primary key auto increment,name varchar 40 money float engine innodb query ok,0...