成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

golang實(shí)現(xiàn)mysql數(shù)據(jù)庫事務(wù)的提交與回滾

瀏覽:247日期:2023-10-24 15:51:19

MySQL 事務(wù)主要用于處理操作量大,復(fù)雜度高的數(shù)據(jù)。在 MySQL 中只有使用了 Innodb 數(shù)據(jù)庫引擎的數(shù)據(jù)庫或表才支持事務(wù)。

事務(wù)用來管理 insert,update,delete 語句,事務(wù)處理可以用來維護(hù)數(shù)據(jù)庫的完整性,保證成批的 SQL 語句要么全部執(zhí)行,要么全部不執(zhí)行。

一般來說,事務(wù)是必須滿足4個(gè)條件(ACID)::原子性(Atomicity,或稱不可分割性)、一致性(Consistency)、隔離性(Isolation,又稱獨(dú)立性)、持久性(Durability)。

本文主要介紹golang實(shí)現(xiàn)MySQL數(shù)據(jù)庫事物的提交與回滾

用到的庫有:

'github.com/jmoiron/sqlx'_ 'github.com/go-sql-driver/mysql'事務(wù)(Transactions)

事務(wù)操作是通過三個(gè)方法實(shí)現(xiàn):

Begin():開啟事務(wù)

Commit():提交事務(wù)(執(zhí)行sql)

Rollback():回滾

舉例:

在事物里操作MySQL任意一步操作出錯(cuò),都需要Rollback()回滾。

package main import ( 'fmt' 'github.com/alecthomas/log4go' _ 'github.com/go-sql-driver/mysql' 'github.com/jmoiron/sqlx') var Db *sqlx.DB func init() { db,err:=sqlx.Open('mysql','TigerwolfC:123456@tcp(127.0.0.1:3306)/test?charset=utf8') if err != nil { fmt.Println('open mysql failed,', err) return } Db = db} func main() { mysqlTest()} func mysqlTest() error{ tx, err := Db.Begin() if err != nil { log4go.Error('open mysql database fail', err) return err } result, err := tx.Exec('INSERT INTO userinfo (username, password,department,email) VALUES (?, ?,?,?)','cici','33333','it','TigerwolfC@163.com') if err != nil{ fmt.Println('insert failed,error: ', err) tx.Rollback() return err } id,_ := result.LastInsertId() fmt.Println('insert id is :',id) _, err = tx.Exec('update userinfo set department = ? where username = ?','cekong','hahah') if err != nil{ fmt.Println('update failed error:',err) tx.Rollback() return err } else { fmt.Println('update success!') } _, err = tx.Exec('delete from userinfo where username = ? ', 'weiwei') if err != nil{ fmt.Println('delete error:',err) tx.Rollback() return err }else{ fmt.Println('delete success') } return tx.Commit()}

當(dāng)然也可以用defer tx.Rollback(),在程序退出前回滾。

func mysqlTest() error{ tx, err := Db.Begin() if err != nil { log4go.Error('open mysql database fail', err) } defer tx.Rollback() result, err := tx.Exec('INSERT INTO userinfo (username, password,department,email) VALUES (?, ?,?,?)','cici','33333','it','TigerwolfC@163.com') if err != nil{ fmt.Println('insert failed,error: ', err) return err } id,_ := result.LastInsertId() fmt.Println('insert id is :',id) _, err = tx.Exec('update userinfo set department = ? where username = ?','cekong','hahah') if err != nil{ fmt.Println('update failed error:',err) return err } else { fmt.Println('update success!') } _, err = tx.Exec('delete from userinfo where username = ? ', 'weiwei') if err != nil{ fmt.Println('delete error:',err) return err }else{ fmt.Println('delete success') } return tx.Commit()}

補(bǔ)充:數(shù)據(jù)庫事務(wù)處理(go,mysql)

看代碼吧~

//數(shù)據(jù)庫連接池var db *sql.DB//初始化數(shù)據(jù)庫func initDB() (err error){fmt.Println('學(xué)習(xí)數(shù)據(jù)庫')dsn := 'usename:password@tcp(127.0.0.1:3306)/dataname'db, err = sql.Open('mysql',dsn)if err!=nil {fmt.Println('打開數(shù)據(jù)庫失敗 err:',err,'.dsn:',dsn)return}err = db.Ping()if err!=nil {fmt.Println('open failed err:',err)return}fmt.Println('連接數(shù)據(jù)庫成功') //最大連接數(shù)db.SetMaxOpenConns(10)//設(shè)置連接池中的最大閑置連接數(shù)db.SetMaxIdleConns(10)return} func trans() {tx, err := db.Begin()if err!=nil {fmt.Println('事務(wù)開啟失敗, err:',err)return}sqlStr1 := 'update student set age=age-2 where id=1;'sqlStr2 := 'update student set age=age+2 where id=3;'_, err = tx.Exec(sqlStr1)if err!=nil {fmt.Println('修改失敗, err',err,',sqlStr1:',sqlStr1)tx.Rollback()return} _, err = tx.Exec(sqlStr2)if err!=nil {fmt.Println('修改失敗, err',err,',sqlStr2:',sqlStr2)tx.Rollback()return} fmt.Println('執(zhí)行成功')//提交事務(wù)tx.Commit()}func main() {fmt.Println('mysql 002.事務(wù)處理')initDB()trans() }

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
日本韩国欧美在线| 成人国产精品免费网站| 国产福利一区二区三区| 欧美亚洲另类激情小说| 亚洲国产一区二区视频| 亚洲人妖在线| 国产日产精品一区| 99re热这里只有精品视频| 欧美一区日本一区韩国一区| 久久成人羞羞网站| 色八戒一区二区三区| 肉肉av福利一精品导航| 在线国产欧美| 国产精品久久777777| 欧美片第1页综合| 久久精品亚洲乱码伦伦中文 | 中文字幕精品一区二区精品绿巨人| 成人福利视频在线看| 欧美mv和日韩mv的网站| 成人午夜电影小说| 欧美xxxxx裸体时装秀| av中文一区二区三区| 日韩精品中文字幕在线一区| 成人精品免费看| 日韩视频免费观看高清完整版在线观看| 国产在线视频一区二区| 欧美精品在线观看一区二区| 狠狠色狠狠色综合系列| 日韩视频永久免费| 成人黄色网址在线观看| 久久亚洲精精品中文字幕早川悠里| 成人免费三级在线| 久久色.com| 欧美午夜精彩| 亚洲精品视频在线| 欧美亚洲在线| 热久久免费视频| 欧美精品一二三区| 99久久精品免费看国产免费软件| 中文在线一区二区| 亚洲国产精品久久久久久女王 | 国产乱码精品一区二区三| 欧美狂野另类xxxxoooo| 国产成人av在线影院| 精品91自产拍在线观看一区| 欧美日产一区二区三区在线观看| 自拍偷拍国产精品| 另类av一区二区| 久久99日本精品| 欧美sm极限捆绑bd| 欧美日韩大片一区二区三区| 中文字幕一区免费在线观看| 亚洲精选一区| 午夜欧美2019年伦理 | 久久久国产一区二区三区四区小说| 欧美激情亚洲| 夜夜精品视频一区二区| 久久免费高清| 国产在线播放一区三区四| 久久亚洲一级片| 亚洲黄页一区| 日韩精品视频网站| 欧美一区二区在线播放| 欧美精品一区二区视频| 夜色激情一区二区| 在线观看www91| av不卡免费电影| 一区二区三区中文字幕| 精品视频在线视频| 欧美精品播放| 日韩黄色在线观看| 欧美videos大乳护士334| 亚洲国产mv| 久久不见久久见免费视频7| 久久久久久久综合日本| 亚洲一区三区电影在线观看| 国产在线视频一区二区| 国产精品成人免费| 精品视频一区三区九区| 欧美va天堂在线| 亚洲国产精品久久人人爱蜜臀 | 久久99精品一区二区三区三区| 日韩欧美电影一区| 黄色在线一区| 久久精品国产色蜜蜜麻豆| 久久品道一品道久久精品| 国产精品毛片va一区二区三区| 国产剧情av麻豆香蕉精品| 中文字幕av一区 二区| 一本久道中文字幕精品亚洲嫩| 99久久精品免费| 日韩福利视频导航| 久久夜色精品国产欧美乱极品| 性色一区二区三区| 丁香激情综合国产| 亚洲一二三四在线| 精品国产一区二区三区忘忧草| 亚洲在线观看| 不卡高清视频专区| 三级在线观看一区二区| 久久奇米777| 91国偷自产一区二区开放时间| 92精品国产成人观看免费| 婷婷中文字幕综合| 欧美国产成人精品| 欧美喷潮久久久xxxxx| 亚洲另类黄色| 国产99久久精品| 亚洲成人一区二区| 久久久综合精品| 欧美性生活一区| 亚洲乱码视频| 97久久久精品综合88久久| 欧美aaaaa成人免费观看视频| 国产精品美女久久久久久久久久久| 欧美欧美午夜aⅴ在线观看| 国产精品区免费视频| 欧美一区久久| 激情伊人五月天久久综合| 亚洲精品视频一区| 国产午夜精品一区二区三区视频 | 国产精品亚洲一区二区三区妖精 | 亚洲精品福利视频网站| 精品欧美乱码久久久久久| 久久久久综合一区二区三区| 欧美日韩在线播放一区二区| 国产在线精品视频| 性久久久久久久久久久久| 亚洲国产精品成人综合| 3d动漫精品啪啪一区二区竹菊 | 99精品欧美一区二区三区| 成人小视频在线观看| 日日欢夜夜爽一区| 亚洲欧洲综合另类在线 | 一区二区久久久久| 久久久美女毛片| 欧美日韩成人一区二区| 久久国产精品久久w女人spa| 黄色成人91| 色综合天天综合给合国产| 国内精品嫩模私拍在线| 亚洲综合色网站| 国产精品欧美一区喷水| 精品少妇一区二区三区视频免付费 | 国产欧美一区二区色老头| 91香蕉视频污在线| 国产黄色成人av| 久久er99热精品一区二区| 日韩精彩视频在线观看| 夜夜揉揉日日人人青青一国产精品| 国产精品久久久久久久久久久免费看 | 亚洲欧美国产毛片在线| 国产婷婷色一区二区三区| 欧美变态tickling挠脚心| 欧美丰满美乳xxx高潮www| 在线观看视频一区二区| 久久久久欧美| 亚洲一区网站| 国产手机视频一区二区| 国产精品草草| 午夜精品一区二区三区四区| 91原创在线视频| 国产99一区视频免费| 国产精品资源在线| 国内精品伊人久久久久av一坑| 天天综合网天天综合色 | 国产精品一品视频| 狠狠色狠狠色综合系列| 美国毛片一区二区三区| 三级在线观看一区二区| 午夜精品视频一区| 无码av中文一区二区三区桃花岛| 一区二区在线观看免费视频播放 | 欧美放荡的少妇| 欧美久久婷婷综合色| 欧美日韩国产精选| 欧美少妇性性性| 欧美日韩一区二区三区免费看 | 国产欧美一区在线| 2017欧美狠狠色| 久久久久久黄色| 久久久久久9999| 国产目拍亚洲精品99久久精品| 久久久久久久网| 久久久久久久久久久久久夜| 久久精品人人爽人人爽| 国产精品欧美一区喷水| 成人免费在线播放视频| 亚洲人成影院在线观看| 一区二区三区中文字幕电影| 亚洲最大成人网4388xx| 午夜久久久久久电影| 日本美女一区二区| 激情综合一区二区三区| 国产精品一级片| 97精品国产97久久久久久久久久久久| 欧美搞黄网站| 亚洲国产导航| 美女主播一区| 欧美三级电影一区|