MySQL错误消息没有提供有用的提示,其他人呢?

时间:2014-03-20 09:15:57

标签: mysql postgresql debugging error-handling

如果在查询中出现语法错误,则会出现如下错误消息:

  

SQL错误(1064):您的SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以便在第1行的'foo'附近使用正确的语法* /

此类错误消息未提供解决错误的有用提示,例如它在那条线上的期望。

是否有任何配置可以改善MySQL错误报告?

其他RDBMS(PostgreSQL,Oracle,MS SQL Server)怎么样? 它们会产生更好的错误消息吗?

2 个答案:

答案 0 :(得分:0)

PostgreSQL的错误消息通常非常有用。

craig=> SELECT abc FROM no_such_table HAVING blah WHERE nonense GARBAGE;
ERROR:  syntax error at or near "WHERE"
LINE 1: SELECT abc FROM no_such_table HAVING blah WHERE nonense GARB...
                                                  ^

WHERE附近没有语法错误;提示:WHERE 之后可能不会出现HAVING子句......这样会很好,但对解析器来说有点棘手。尽管如此,它会告诉您错误的位置。

它通常比这更具体,它取决于错误的性质。

答案 1 :(得分:0)

使用 SQL fiddle 我在某些RDBMS上执行了以下查询。

select foo from 

只有Oracle 11g返回了一条智能错误消息:

ORA-00903: invalid table name : select foo from

其他错误讯息:

# SQL Server 2008
Incorrect syntax near 'from'.: select foo from

#SQLite
could not prepare statement (1 near "from": syntax error)

#PostgreSQL 9.3
ERROR: syntax error at end of input: select foo from

#MySQL 5.5
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1: select foo from