开发者社区> 问答> 正文

后台输出syntax error提示

开发环境是 DB : postgreSQL + Mybatis + SpringMVC druid的版本号是1.0.8

删除表的时候会在后台输出如下错误 DROP TABLE IF EXISTS t_report_1_19

com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'E IF EXISTS t_report_1_19',expect EXISTS, actual EXISTS EXISTS

生成表的时候会在后台输出如下错误 CREATE TABLE t_history_1_19( id SERIAL NOT NULL, modify_history TEXT, modify_user INTEGER, modify_style INTEGER, modify_date TIMESTAMP WITHOUT TIME ZONE, report_id INTEGER, CONSTRAINT t_history_1_19_pkey PRIMARY KEY (id)) com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'TAMP WITHOUT TIME ZONE, report_i',expect RPAREN, actual IDENTIFIER WITHOUT

虽然后台报错,但是实际上是执行成功的,请问如何让拼写错误提示消失

原提问者GitHub用户it2911

展开
收起
山海行 2023-07-05 22:09:31 139 0
5 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    "Syntax error"通常表示语法错误,即在编写程序或命令时,未按照语法规则正确书写命令或代码,导致无法被正确解析执行。

    如果您在后台输出中看到了"syntax error"的提示,那么很有可能是代码或命令中存在语法错误。您可以尝试以下几个步骤来定位和解决问题:

    检查代码或命令:检查您编写的代码或命令是否符合语法规则。可以使用在线语法检查工具或IDE内置的语法检查功能来帮助您找出语法错误。

    查看错误信息:如果错误信息提供了更多的上下文信息,可以尝试查看错误信息,以确定哪个部分的代码或命令存在语法错误。

    检查日志:如果错误信息不够清晰,可以尝试查看日志,以获取更多的信息。可能有其他的错误信息或异常被记录在日志中,这些信息可能会提供更多的上下文信息和解决方法。

    2023-07-29 22:58:43
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    根据您提供的错误信息,看起来是由于 Druid 解析 SQL 语句时出现了语法错误导致的。尽管实际上执行成功了,但仍然输出了错误信息。

    要解决这个问题,您可以尝试升级您使用的 Druid 版本。根据您提供的信息,您使用的是 Druid 1.0.8 版本。在较新的版本中,可能已经修复了一些语法解析错误。

    您可以前往 Druid 的官方网站或者 Maven 仓库查找最新的版本,然后将其更新到您的项目中。

    另外,如果您确定 SQL 语句是正确的,您也可以尝试禁用 Druid 的语法检查功能,以避免输出错误信息。在 Druid 的配置中,可以设置 druid.parser.sqlSyntaxError 参数为 false,这样就不会输出语法错误信息了。请注意,禁用语法检查可能会导致一些潜在的问题被忽略,因此请在确认 SQL 语句正确无误的情况下使用该选项。

    希望这些信息对您有所帮助!如果您有任何其他问题,请随时提问。

    2023-07-07 12:04:12
    赞同 展开评论 打赏
  • 根据你提供的错误信息,可以看出这是由于Druid版本1.0.8中的SQL解析器存在一些限制和问题所导致的。

    在删除表时,Druid解析器无法正确处理DROP TABLE IF EXISTS语句的语法,导致报错。同样,在创建表时,Druid解析器也无法正确处理TIMESTAMP WITHOUT TIME ZONE语法,再次导致报错。

    尽管在后台显示了错误提示信息,但实际上你所执行的操作已经成功完成。这是因为Druid仍然能够正确执行SQL语句,即使在解析阶段出现了语法错误。

    要让拼写错误的提示消失,你有以下几个选择:

    1. 忽略错误提示:如果你确定SQL语句是正确的并且操作也成功完成了,可以简单地忽略错误提示。只需确保数据库中的表被正确地创建或删除即可。

    2. 升级Druid版本:考虑将Druid升级到较新的版本,因为Druid的最新版本通常会修复一些已知的解析器问题和错误。请查阅Druid的官方文档和发行说明,以了解更多关于版本升级的信息。

    3. 使用其他SQL解析器:如果Druid的解析器在你的环境中持续引起问题,你可以考虑使用其他的SQL解析器。例如,可以尝试使用ANTLR或JSQLParser等替代解析器来处理SQL语句。

    2023-07-06 17:40:13
    赞同 展开评论 打赏
  • pg的sql parser在这个版本不支持这个语法,已经修复

    原回答者GitHub用户wenshao

    2023-07-06 12:44:24
    赞同 展开评论 打赏
  • 根据您提供的信息,您的后台输出了一些语法错误的提示,但实际上操作是成功的。这可能是因为Druid的SQL解析器对于某些PostgreSQL的语法并不完全兼容,导致误报了一些错误。

    要让这些错误提示消失,您可以尝试以下方法:

    1. 更新Druid的版本。根据您提供的信息,您使用的是Druid 1.0.8版本,而当前最新版本是1.2.6。尝试升级到最新版本,可能会修复一些语法解析的问题。

    2. 禁用Druid的语法检查。Druid提供了一些配置选项来控制语法检查的行为。您可以尝试在配置文件中将"druid.stat.mergeSql"和"druid.stat.slowSqlMillis"两个配置项设置为较大的值,或者禁用它们,以减少语法检查的频率。

    3. 忽略这些错误提示。由于实际操作是成功的,您可以尝试忽略这些错误提示。可以通过设置日志级别为WARN或ERROR来减少输出的日志信息。

    2023-07-06 08:43:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载