<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## Insert 插入 ```go // 一條數據 var data = map[string]interface{}{"age":17, "job":"it3"} // insert into user (age, job) values (17, 'it3') db.Table(&user).Data(data).Insert() // 多條數據 var multi_data = []map[string]interface{}{ {"age":17, "job":"it3"},{"age":17, "job":"it4"} } // insert into user (age, job) values (17, 'it3') (17, 'it4') db.Table("user").Data(multi_data).Insert() ``` ## InsertGetId 插入并返回插入id, 默認返回影響行數 ```go // 一條數據 var data = map[string]interface{}{"age":17, "job":"it3"} // insert into user (age, job) values (17, 'it3') db.Table(&user).Data(data).Insert() // 多條數據 var multi_data = []map[string]interface{}{ {"age":17, "job":"it3"},{"age":17, "job":"it4"} } // insert into user (age, job) values (17, 'it3') (17, 'it4') db.Table("user").Data(multi_data).InsertGetId() ``` ## Update 修改 ```go // update user set age=17, job='ite3' where (id=1) or (age>30) db.Table("user"). Data(map[string]interface{}{"age":17, "job":"it3"}). Where("id", 1). OrWhere("age",">",30). Update() ``` ## Delete 刪除 ```go // delete from user where id=5 db.Table("user").Where("id", 5).Delete() ``` 除了 `InsertGetId` 返回插入id, 其他方法均返回 影響行數, 如果影響行數為0, 則操作也是不成功的 ## 事務 ```go var data = map[string]interface{}{"names": "fizz3", "age": 3} ``` - 標準事務 ```go db := engin.NewOrm() // 開始事務 db.Begin() res,err := db.Table("user").Where("id", 1).Data(data).Update() if (res == 0 || err!=nil) { // 回滾事務 db.Rollback() } res2,err2 := db.Table("user").Data(data).Insert() if (res2 == 0 || err2!=nil) { // 回滾事務 db.Rollback() } // 提交事務 db.Commit() ``` - 一鍵事務: 簡單用法, 用閉包實現, 自動開始,回滾和提交 事務 ```go db:= DB() err := db.Transaction( // 第一個業務 func(db IOrm) error { _,err := db.Where("uid",1).Update(&Data{"name":"gorose2"}) if err!=nil { return err } _,err = db.Insert(&Data{"name":"gorose2"}) if err!=nil { return err } return nil }, // 第二個業務 func(db IOrm) error { _,err := db.Where("uid",1).Delete() if err!=nil { return err } _,err = db.Insert(&Data{"name":"gorose2"}) if err!=nil { return err } return nil } ) ``` 內部閉包會在返回錯誤時自動回滾, 會在沒有錯誤時自動提交事務 ## 特別說明 1. 傳入的數據如果是struct綁定數據, 則默認忽略字段類型默認值. 如果想更新的話, 則可以使用 `ExtraCols(args ...string)`,如:`xx.ExtraCols("field","field2").Update(&Data{xxx})`
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看