为什么 MySql 错误消息是非描述性的和/或错误的?

问题描述 投票:0回答:1

我在 MySql 错误消息上浪费了很多时间,这些错误消息是非描述性的(“你的语法有错误”)或者根本就是错误的。今天,我犯了以下错误:

SELECT EXISTS (SELECT * FROM setting WHERE name = `radioID`)

我的缺点:我使用了勾号“而不是单引号”。但是,这是当我在 Raspberry 上通过 Python 运行此 MySql 命令时收到的错误消息:

An error occurred: 1054 (42S22): Unknown column 'radioID' in 'where clause'

这个错误消息显然是错误的。

PHP、Python 或 Java 中的错误消息似乎要好得多。它们为程序员指明了正确的方向。但根据我的经验,MySql 错误消息毫无价值:如果有的话,它们指向错误的方向。

这是为什么呢?在 MySql 中生成良好的错误消息是否更困难?

mysql mariadb
1个回答
0
投票

错误消息是完全描述性的。那是你没有分析错误信息导致你没有理解问题所在。

错误消息表明它将

radioID
视为列名,而您希望它是文字。查询文本中只有一处使用了该值。很明显,您使用了不正确的引用,您使用了反引号而不是单引号字符。

PS。 MySQL/MariaDB 拥有最好的错误消息系统,大多数情况下错误消息具有良好的描述性。我只知道错误消息与错误不匹配的一种情况 - 这是当您使用未实现的 FULL JOIN 时生成的错误消息。

© www.soinside.com 2019 - 2024. All rights reserved.