如何导入两个包都是registe驱动mysql

我的项目需要导入两个包,而每一个注册
mysql驱动程序,我得到了

panic with panic:sql:为驱动程序mysql调用两次

如何解决这个问题 最佳答案 您需要以某种方式重新构建项目,以便不在同一进程中导入两个驱动程序.

通常,实现SQL驱动程序的程序包将具有“init()”函数,在该函数中,它们将执行以下操作:

sql.Register("mysql", &MySQLDriver{})

参见例如:
https://github.com/go-sql-driver/mysql/blob/master/driver.go#L182

但如果相同的驱动程序名称按文档中的说明注册两次,则Register函数将抛出错误:
https://golang.org/pkg/database/sql/#Register

原因是你要尝试这样做才能真正使用驱动程序:

db, err := sql.Open("mysql", someDBUrl)

那么,如果允许你在同一名称下注册多个驱动程序,sql库应该如何确定要使用的驱动程序?

点赞