个性化条件
DPC 下分区列即分布列:主键不含分区键时,达梦会自动把主键索引升级为全局索引保障唯一性,主键与索引保持与源表一致,无需调整。
按离散值分区,分区值直接取自源表 PARTITION BY LIST 定义(保留源分区语义,无需手工枚举)。DPC 下分区列即分布列,主键不含分区键时会自动升级为全局索引,主键与索引保持与源表一致。数值列的分区值若源为 '1' 形式,请核对达梦是否需去引号。
「跟随源表」为默认:源 DDL 自带分区时自动识别并按达梦语法原样重建(保留源分区名与边界值,支持 RANGE / INTERVAL / LIST / HASH),源无分区则不分区。需要手工指定时才选下面几种:Hash 按主键均匀分布;静态 Range 枚举边界;间隔分区 INTERVAL 由库自动扩展(分区键须为日期/数值);LIST 按离散值。
⚠ 达梦【水平分区表不允许自增列】:IDENTITY 与 PARTITION BY 互斥,DPC 下建表报 -3816;该限制与分区方式无关(RANGE / HASH / LIST / INTERVAL 均受限)。存量表迁移时留空即可——工具会自动读取源表的 AUTO_INCREMENT 当前值作为起点,避免新建的序列从 1 重新分配、与已有数据主键冲突。手工覆盖场景才需要填写。
💡 ODS 贴源层(数据从 MySQL 源库同步过来,主键值随数据一起带过来)建议直接选「去除自增」——此时达梦端不需要生成主键,序列和触发器都不会触发,属于纯冗余;万一某批次漏带主键值,触发器还会从序列取值,与源库真实主键撞号且难排查。只有当达梦端需要自己生成主键时才用序列。
SelectDB 基于 Apache Doris,建表必须指定分布键和 Buckets。未指定时使用主键 HASH 分布。