从列中的最大 id 创建 HSQL 序列

Posted

技术标签:

【中文标题】从列中的最大 id 创建 HSQL 序列【英文标题】:HSQL sequence creation from max id in a cloumn 【发布时间】:2019-10-10 10:02:49 【问题描述】:

我想为 max(id) 创建序列并在 HSQL 中将其递增 1

CREATE SEQUENCE test1_seq [AS INTEGER | BIGINT]
    [START WITH (Select max(id) from test)] [INCREMENT BY 1];

但它不起作用

【问题讨论】:

如果序列的目的是为测试表的元组创建唯一 ID,您可以在测试类的 Hibernate 映射文件中执行此操作:<id name="ID" type="long"> <generator class="increment"></generator></id> 是否有可能在 hsql db 中创建过程。在第 2 行 START WITH 接受数值,但不接受内联 select max(id) 查询 【参考方案1】:

HSQLDB 仅支持 CREATE SEQUENCE ... START WITH 和 ALTER SEQUENCE ... RESTART WITH 语句的常量。

可以在 CREATE TABLE 语句中使用命名的 SEQUENCE,它会从起始值自动递增:

CREATE TABLE TEST (id BIGNIT GENERATED BY DEFAULT AS SEQUENCE test1_seq, ...)

【讨论】:

我在创建 oracle 序列时遇到了同样的问题,并通过编写程序来克服。这样我正在寻找一个选项

以上是关于从列中的最大 id 创建 HSQL 序列的主要内容,如果未能解决你的问题,请参考以下文章