如何解析mysql错误golang

时间:2016-07-21 02:41:02

标签: mysql go error-handling

我正在尝试解析mySQL错误,以便从golang API向用户返回干净的错误消息。 我读了一些像this one这样的文章,它显示了我想要做的事情,但看起来我使用的模块go-mysql-driver并不支持parseError。

给出我尝试实现的具体示例,错误:

Error 1062: Duplicate entry 'John' for key 'name_UNIQUE'

我希望能够构建一个数据结构,允许我组织信息以返回用户友好的消息,如

Error with the field 'name': 'John' already exist"

所以我也可以用不同的语言翻译它并直接打印到客户端。

谢谢!

2 个答案:

答案 0 :(得分:18)

我在packets.godriver_test.go

中找到了一些提示

示例:

me, ok := err.(*mysql.MySQLError)
if !ok {
    return err
}
if me.Number == 1062 {
    return errors.New("It already exists in a database.")
}
return err

可以在mysql documentation

中找到me.Number的可能值

答案 1 :(得分:-2)

该错误直接来自服务器,您必须自己解析错误字符串(err.Error())。