文档首页/ 数据治理中心 DataArts Studio/ 常见问题/ 数据集成(实时作业)/ GaussDB到DWS实时同步中,开启逻辑删除时写入DWS报错,错误信息包含“null value in column "xxx" violates not-null constraint”怎么办?
更新时间:2025-08-05 GMT+08:00

GaussDB到DWS实时同步中,开启逻辑删除时写入DWS报错,错误信息包含“null value in column "xxx" violates not-null constraint”怎么办?

问题描述

运行GaussDB到DWS的实时同步作业时,目的端高级属性配置中打开逻辑删除开关:logical.delete.enabled -> true。目的端表存在非主键not null字段时,源端执行删除数据操作,作业报错:null value in column "xxx" violates not-null constraint。

原因分析

逻辑删除功能实际上会将delete SQL语句调整为update SQL语句,并且仅更新删除标记列的值,以避免向目的端更新非预期的值。尽管已指定需要更新的列,DWS仍会先判断非主键not null字段是否有从源端同步的非空值。

解决方案

修改目的端非主键not null的字段类型为 null,或者在 not null 的基础上添加默认值 default。

其他注意事项:逻辑删除功能不适用于目的端无主键表的场景。