当前位置: 首页 > 知识库问答 >
问题:

Play framework,PostgreSQL内存数据库,间隔不工作

蓟捷
2023-03-14

我无法获得以下请求以使用Play框架

SELECT DISTINCT tableName 
    FROM hand 
    WHERE (hand.userLogin = {userLogin} OR {userLogin} IS NULL)
    AND (date >= now() - interval '3 days')
    ORDER BY tableName

原因:组织。h2.jdbc。JdbcSQLException:SQL语句“从HAND中选择不同的表名,其中(HAND.USERLOGIN=?或?为空)和(DATE

我的conf文件显示:

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play;MODE=PostgreSQL"

我不知道我做错了什么。删除间隔部分使其工作,因此这显然是问题所在。

共有2个答案

慕容坚
2023-03-14

H2不支持区间数据类型,但PostgreSQL支持。

标准SQL和PostgreSQL

标准SQL引用数字,但不引用限定符。在这种情况下,限定词总是单数的,而不是复数的。(以天为单位,而不是以天为单位。)

select current_date - interval '3' day;

PostgreSQL允许其变体,包括间隔'3天'间隔'3天'。但它不允许出现在错误消息中的这些尾随括号。(不过,我想这些括号可能只是错误消息的一部分。)

INTERVAL '3 minute'[*]

您还可能会收到与使用保留字作为列名相关的虚假错误消息。(日期是一个保留字。)

您可以在Mimer SQL验证服务网站上测试标准语法。

H2

H2不支持区间数据类型。(间隔不在此列表中。)其datediff()函数返回一个长整数,而不是一个区间。

怎么办

如果您的生产dbms是PostgreSQL,您可能也应该在开发和测试中使用PostgreSQL。

金英华
2023-03-14

Postgres间隔不属于H2标准,因此H2不支持它。有关支持的函数和关键字,请参阅h2语法文档。

 类似资料:
  • 我能够通过一个PHP脚本用这些完全相同的凭证连接到< code>protomolecule数据库。如图所示,试图在PhpStorm中设置它失败了。 如果我将数据库更改为默认的数据库,它在PhpStom中连接得很好。我不明白为什么用户只能连接到而不是其他任何东西。 我尝试设置新用户和新数据库无济于事。 编辑:根据要求添加了下面的工作PHP脚本设置。

  • 一、内存数据库: 在SQLite中,数据库通常是存储在磁盘文件中的。然而在有些情况下,我们可以让数据库始终驻留在内存中。最常用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递":memory:",如: rc = sqlite3_open(":memory:", &db); 在调用完以上函数后,不会有任何磁盘文件被生成,取而代之的是,一个新的数据库在纯内存中被成功创建了。

  • 使用H2, 如果数据库还不存在,则创建它。 但是,在Postgres中,不会创建不存在的数据库,因此会引发类似“DB不存在”的异常。有没有办法配置Postgres以按需创建不存在的数据库? 以下配置文件可用于重现此问题: 使用H2工作正常: 使用Postgres失败

  • 这很慢吗?我有一个表有4列ID姓氏教练城 我有一个添加数据按钮,它添加了300行,每列都包含数据,所以总共有1200条记录。 实际添加数据只需4分钟多(这意味着从我按下按钮到显示消息框完成)。 我在澳大利亚的ADSL2上,速度测试刚刚完成,下载速度为28ms ping 14.12Mbps,上传速度为0.49Mbps 我知道澳大利亚互联网是一个笑话,但这似乎真的很慢! 这仅仅是因为我的网络上传速度吗

  • 我正在创建一个Android应用程序,将数据保存在SQLite数据库中,然后从同一个数据库读取数据。这样一来,我就不需要每次将数据联机到MySQL服务器。我将其连接到一个外部数据库,提取数据,并尝试查看数据是否正在保存,但当我尝试使用函数从SQLite数据库获取数据时,它似乎是空的 对于获取数据的类,数据会保存下来,当我试图检查它时,它会告诉我它是空的 所以我为测试添加了这个函数,并将其命名为On

  • 我是Spring data neo4j的新手,我对GraphRepository有一些错误/问题。 我第一次有了这个: 但是阅读一些文档,存储库已经提供了这样的方法。我不需要写它们。 这是我的产品域名。 这是我的实验班 未检测到查找字节 Id 这正常吗? 这是我的pom.xml