如果在查询中出现语法错误,则会出现如下错误消息:
SQL错误(1064):您的SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以便在第1行的'foo'附近使用正确的语法* /
此类错误消息未提供解决错误的有用提示,例如它在那条线上的期望。
是否有任何配置可以改善MySQL错误报告?
其他RDBMS(PostgreSQL,Oracle,MS SQL Server)怎么样? 它们会产生更好的错误消息吗?
答案 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