将序列值设置为 HSQL 中列的默认值

Posted

技术标签:

【中文标题】将序列值设置为 HSQL 中列的默认值【英文标题】:setting sequence value as default for column in HSQL 【发布时间】:2020-02-07 15:02:51 【问题描述】:

我在 postgres 中有一个类似这样的查询:

ALTER TABLE alias_table ALTER COLUMN iddb SET DEFAULT nextval('alias_table_iddb_seq');

我想把它翻译成hsql。我知道我可以通过启用 PostgreSQL 语法兼容性来做到这一点:

SET DATABASE SQL SYNTAX PGS TRUE;
ALTER TABLE alias_table ALTER COLUMN iddb SET DEFAULT nextval('alias_table_iddb_seq');

不过,我对纯 hsql 语法很感兴趣。我知道我可以使用以下方法创建表语法:

CREATE TABLE alias_table ( 
  iddb bigint GENERATED BY DEFAULT AS SEQUENCE alias_table_iddb_seq PRIMARY KEY
);

但是,我该如何使用alter table 语法呢?

【问题讨论】:

【参考方案1】:

目前唯一支持的 ALTER TABLE 语法是 PGS 兼容模式。

在下一个版本 (2.5.1) 中将支持类似于用于 CREATE TABLE 的语法。

ALTER TABLE alias_table ALTER COLUMN iddb GENERATED BY DEFAULT AS SEQUENCE alias_table_iddb_seq

【讨论】:

谢谢,你知道它计划什么时候发布吗? 还没有--------

以上是关于将序列值设置为 HSQL 中列的默认值的主要内容,如果未能解决你的问题,请参考以下文章

Big Query Tables 中列的默认值

代码优先迁移中列的 EF6 Oracle 默认值

mysql里的表怎么改列的默认值

将定义集中的值设置为 Pandas 数据框中列的给定值(f.e. NaN)

oracle的主键要设置默认值为自动递增,怎么处理?

如何使用默认值修改列的数据类型