为了账号安全,请及时绑定邮箱和手机立即绑定

在Go中如何辨别MySQL执行的错误号?

在Go中如何辨别MySQL执行的错误号?

Go
PIPIONE 2023-03-29 17:13:36
stmt, err := db.Prepare("SQL Stuff")    if err != nil {        log.Fatal(err)    }res, err := stmt.Exec(add a variable)    if err != nil {        log.Fatal(err)    }这就是我目前在 Go 中处理基于 MySQL 的错误的方式。就目前而言,当我在使用 SQL 命令时遇到问题或出现其他错误时,点击“if”并正确地将错误打印到控制台以结束程序。我知道当我看到控制台读数时,会出现如下错误编号: https: //dev.mysql.com/doc/refman/5.5/en/error-messages-server.html。所以我会假设抛出的错误本身有它里面的数字。我想回应“该行存在”或“不是唯一值”之类的情况,因为在某些情况下我会对它们做出回应。是否有一种简洁的方法来辨别错误号是什么?
查看完整描述

1 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

这取决于您使用的 MySQL 驱动程序。如果是,那么它确实会在MySQLError 类型github.com/go-sql-driver/mysql中公开错误号。你可以这样做:


if merr, ok := err.(*mysql.MySQLError); ok {

    // This is an error from MySQL. Use merr.Number as the error number

} else {

    // This error isn't necessarily from MySQL. Usual error processing

}


查看完整回答
反对 回复 2023-03-29
  • 1 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信