从列中的最大 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 序列的主要内容,如果未能解决你的问题,请参考以下文章