如何解析MySQL错误

6ovsh4lw  于 2023-02-21  发布在  Mysql
关注(0)|答案(2)|浏览(141)

我正在尝试解析MySQL错误,以便从Go API向用户返回干净的错误消息。
我读了一些文章,如this one,显示了我想做什么,但它看起来像模块go-mysql-driver,我正在使用不支持parseError。
举一个具体的例子,错误:

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

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

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

因此我还可以将其翻译成不同的语言并将现成的错误消息发送回客户端。
谢谢大家!

xa9qqrwz

xa9qqrwz1#

我在packets. go和driver_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

me.Number的可能值可在mysql documentation中找到

qvtsj1bj

qvtsj1bj2#

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

相关问题