【问题标题】:SQL error or missing database (near "(": syntax error)SQL 错误或缺少数据库(“(”附近:语法错误)
【发布时间】:2021-04-28 19:45:12
【问题描述】:

我对 Java 中的 SQLite 有一个大问题。当我使用 MariaDB 运行此查询时,一切正常,但使用 SQLite 则不行。有人知道答案吗?

查询:

SELECT *
FROM (SELECT *, RANK() OVER (ORDER BY kills DESC) AS ranking FROM sp_rageffa) AS `*2`
WHERE uuid = 'b71e5129-7216-4d79-b79f-2e3893a6befa';

错误:

SQL 错误或缺少数据库(“(”附近:语法错误)

【问题讨论】:

  • 欢迎来到 SO。 SELECT *, RANK() 看起来很奇怪。
  • 但它可以工作(至少在 MariaDB 上)
  • 请发布您的代码
  • 你明白不同的数据库不会使用完全相同的 SQL 版本吗?
  • 也许 sqlite 不支持 RANK() OVER .remove RANK() OVER 再试一次?

标签: java sql sqlite jdbc


【解决方案1】:

我在数据库浏览器中试了一下,你的命令没有问题。 sqlite 3.25 版引入了对该语法的支持,而 jdbc(sqlite 的 java 接口)使用几乎相同的版本控制方案,因此您应该确保使用编号为 3.25 或更高版本的 jdbc。

【讨论】:

  • 我也通过 Intellij IDEA 的控制台尝试过这个,它也可以正常工作。只有当我编译这不起作用。我正在使用 SQLite 3.34.0
猜你喜欢
  • 2018-04-10
  • 1970-01-01
  • 2017-02-11
  • 2021-07-31
  • 1970-01-01
  • 2017-10-18
  • 2020-12-11
  • 2018-01-19
  • 2016-08-14
相关资源
最近更新 更多