将序列与hsqldb中的标识链接
发布时间:2020-05-28 17:59:10 所属栏目:MsSql 来源:互联网
导读:在PostgreSql中,可以定义一个序列并将其用作表的主键.在HsqlDB中,仍然可以完成创建自动增量标识列,该列不链接到任何用户定义的序列.是否可以使用用户定义的序列作为HsqlDB中自动增量标识列的生成器? PostgreSql中的示例sql: CREATE SEQUENCE seq_company_id
|
在PostgreSql中,可以定义一个序列并将其用作表的主键.在HsqlDB中,仍然可以完成创建自动增量标识列,该列不链接到任何用户定义的序列.是否可以使用用户定义的序列作为HsqlDB中自动增量标识列的生成器? PostgreSql中的示例sql: CREATE SEQUENCE seq_company_id START WITH 1;
CREATE TABLE company (
id bigint PRIMARY KEY DEFAULT nextval('seq_company_id'),name varchar(128) NOT NULL CHECK (name <> '')
);
HsqlDB中的等价物是什么? 谢谢. 解决方法在2.0版本中,没有直接的功能.您可以在表上定义BEFORE INSERT触发器来执行此操作:CREATE TABLE company ( id bigint PRIMARY KEY,name varchar(128) NOT NULL CHECK (name <> '') ); CREATE TRIGGER trigg BEFORE INSERT ON company REFERENCING NEW ROW AS newrow FOR EACH ROW SET newrow.id = NEXT VALUE FOR seq_company_id; 插入时不使用任何vlue的id INSERT INTO公司VALUES null,’test’ HSQLDB 2.1及更高版本的更新:已添加一项功能来支持此功能. CREATE SEQUENCE SEQU CREATE TABLE company ( id bigint GENERATED BY DEFAULT AS SEQUENCE SEQU PRIMARY KEY,name varchar(128) NOT NULL CHECK (name <> '') ); 请参见CREATE表http://hsqldb.org/doc/2.0/guide/databaseobjects-chapt.html#dbc_table_creation下的指南 此外,2.1及更高版本具有PostgreSQL兼容模式,其中它接受PostgreSQL CREATE TABLE语句,该语句引用DEFAULT子句中的序列并将其转换为HSQLDB语法. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql – 您能否推荐Teradata最佳实践的良好资源?
- sql – 如何判断Oracle中的值是否不是数值?
- mysql Sort aborted: Out of sort memory, consider increa
- SQL用户定义的表类型:如果不用作参数,为什么我们可以删除它
- 如何在使用SSIS导入数据库之前验证CSV文件?
- sql – 从每个组中选择前1行
- sql – 如何从两个查询的并集中选择最上面的n,其中生成的顺
- sql-server – SQL Server截断视图中新创建的字段的小数点
- sql-server – 要为LIKE运算符通配符搜索转义的T-SQL特殊字
- sql-server – 收缩数据库和文件有什么区别?
