【问题标题】:SELECT UUID() in HSQLDB在 HSQLDB 中选择 UUID()
【发布时间】:2018-09-04 18:25:06
【问题描述】:

有谁知道如何通过 HSQLDB 检索 UUID。

例如当我尝试时

SELECT UUID();

通过 MYSQL 可以正常工作。但同样的语句不适用于 HSQLDB。 以下方法达到了相应的目的

VALUES (UUID())

CALL(UUID())

SELECT UUID() FROM (VALUES(0)) t;

mysql 和 hsqldb 有没有相同的方法? HSQL 文档说 UUID 已被激活。 http://hsqldb.org/doc/guide/builtinfunctions-chapt.html

谢谢。

【问题讨论】:

  • 是否有任何 hack where 语句如 SELECT UUID() FROM (VALUES(0)) 也可以与 mysql 一起使用?
  • HSQLDB 需要 FROM [table] 部分...我发现了这个问题 stackoverflow.com/questions/909702/… 但不是与 current_timestamp() 但我认为相同的方法可以用于 UUID()
  • SELECT UUID() FROM (SELECT 0) t 可能适用于 MySQL(确定它适用于 MySQL)和 HSQLDB
  • 现在试过了,当我指定表名时它不起作用。 SELECT UUID() FROM (SELECT 0) t 仅适用于 mysql
  • “mysql 和 hsqldb 有没有相同的方法?”见我的回答。

标签: mysql database hsqldb uuid


【解决方案1】:

mysql 和 hsqldb 有没有一样的方法?

只有这样我才能考虑。
在 HSQLDB 中创建 DUAL 表

CREATE TABLE DUAL (
  id INT
);

所以你可以使用

SELECT UUID() FROM DUAL LIMIT 1;

那么查询在 MySQL 和 HSQLDB 中的工作方式应该相同。
MySQL 中的 DUAL 是一个不存在的虚拟表。

【讨论】:

    【解决方案2】:

    在 HSQLDB 中打开 MySQL 兼容模式,它将允许您的 SELECT 语句:

    http://hsqldb.org/doc/2.0/guide/compatibility-chapt.html#coc_compatibility_mysql

    【讨论】:

      猜你喜欢
      • 2010-12-26
      • 1970-01-01
      • 2010-10-28
      • 2014-04-09
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      相关资源
      最近更新 更多