注册

求Go版本驱动事务的正确打开方式!!

Max 2021/02/24 1878 4

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:V8
【操作系统】:
【CPU】:
【问题描述】*:
驱动版本:go语言版本
问题:使用数据库创建了一个表然后回滚,发现表还是创建成功了,求教事务的正确打开方式。
简单测试代码如下:

package main import ( "cindasoft.com/library/entity" "cindasoft.com/library/slog" "time" "database/sql" _ "dm" ) //使用新用户重新登录 func createTable() { dbConfig := &entity.DataSource{ IdleMax: 50, OpenMax: 100, Url: "dm://emoa_dns:Youdu123!!@localhost:5237", DBType: entity.DBNameDM, } ydDB, err := sql.Open(dbConfig.DBType, dbConfig.Url) if err != nil { slog.Exit("reconnect use emoa_dns error:", err) } ydDB.SetMaxOpenConns(dbConfig.OpenMax) ydDB.SetMaxIdleConns(dbConfig.IdleMax) ydDB.SetConnMaxLifetime(1 * time.Minute) slog.Info("re-open youdu ok:", ydDB) tx, err := ydDB.Begin() if err != nil { slog.Exit("begin tx failed:", err) } createSql := ` CREATE TABLE t_dns_group ( name varchar(64) NOT NULL, descprition varchar(255) DEFAULT NULL, PRIMARY KEY (name) )` _, err = tx.Exec(createSql) if err != nil { slog.Exit("create table t_dns_group failed:", err) } slog.Info("create table t_dns_group ok!!") err = tx.Rollback() if err != nil { slog.Exit("rollback error:", err) } slog.Info("rollback db ok!!") } func main() { createTable() }
回答 0
暂无回答
扫一扫
联系客服