database compatibility assessment

ORACLE IDENTITY 自增列 迁移 opengauss 6.0 A 模式 怎么改

迁衡基于规则 ora.column.identity 分析 ORACLE IDENTITY 自增列 到 opengauss 6.0 A 模式 的兼容性、改写路径与验证建议。

兼容性判定

真机验证:opengauss 6.0.5 · GENERATED AS IDENTITY 列语法支持情况待真库验证;可改序列+默认值方案 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容
支持度none
严重度minor
置信度high
依据规则ora.column.identity

怎么改

需按命中位置逐条评估改写

判定说明

GENERATED AS IDENTITY 列语法支持情况待真库验证;可改序列+默认值方案 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容

库侧 / 应用侧路径

库侧改造

需人工确认改造边界

应用侧改造

需人工确认改造边界

推荐路线:case_by_case。验证建议:功能本身兼容,但要核对 IDENTITY 选项(INCREMENT BY 等,源工具逐项比对); OB 侧内部序列命名 ISEQ$$_*,跨 schema 写入需额外补内部序列的 SELECT 授权, 否则"表 grant 齐了但 INSERT 仍失败"

规则样例

CREATE TABLE t (id NUMBER GENERATED ALWAYS AS IDENTITY, v VARCHAR2(10))
CREATE TABLE t (id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY (START WITH 100 INCREMENT BY 2))
CREATE TABLE t (total NUMBER GENERATED ALWAYS AS (price*qty) VIRTUAL)