为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】: 8 【操作系统】:docker 【CPU】: i7 【问题描述】*:需要拓展geotools类以支持达梦数据库,需要重写父类相关方法,geotools对pg的支持中是用到了pg_get_serial_sequence这个函数,入参为表名与列名,返回值为序列名称。 翻了翻文档,没有查询到达梦数据库相关操作的内容,求大佬们给指条明路
达梦对于自增字段本身并不像pg通过序列的关联来外部实现,而是以字段内部形式处理,如果是预期通过pg_get_serial_sequence获取到序列名称后对其进行相关信息查询,可以转为对自增字段的查询 例如 select IDENT_SEED(‘TESTA’),IDENT_INCR(‘TESTA’),IDENT_CURRENT(‘TESTA’),SCOPE_IDENTITY(),GLOBAL_IDENTITY(); 依次为: 获取自增列种子 获取自增列增量值 获取自增列当前值 返回插入到同一作用域中的 identity 列内的最后一个 identity 值 返回在当前会话中的任何表内所生成的最后一个标识值,不受限于特定的作用域
同时需注意IDENTITY字段无法直接进行修改,所以应当避免修改 alter table “SYSDBA”.“TESTA” drop identity; alter table “SYSDBA”.“TESTA” add column “ID” identity(10, 2);
达梦对于自增字段本身并不像pg通过序列的关联来外部实现,而是以字段内部形式处理,如果是预期通过pg_get_serial_sequence获取到序列名称后对其进行相关信息查询,可以转为对自增字段的查询
select IDENT_SEED(‘TESTA’),IDENT_INCR(‘TESTA’),IDENT_CURRENT(‘TESTA’),SCOPE_IDENTITY(),GLOBAL_IDENTITY();
例如
依次为:
获取自增列种子
获取自增列增量值
获取自增列当前值
返回插入到同一作用域中的 identity 列内的最后一个 identity 值
返回在当前会话中的任何表内所生成的最后一个标识值,不受限于特定的作用域
同时需注意IDENTITY字段无法直接进行修改,所以应当避免修改
alter table “SYSDBA”.“TESTA” drop identity;
alter table “SYSDBA”.“TESTA” add column “ID” identity(10, 2);