一、问题描述
在不同关系型数据库下对空转化存在差异。如图在对字段name进行判空时(distinct name),PG语法下通过is null判空存在一条数据,MySQL模式下存在两条。
二、业务影响与分析
业务进行异构数据迁移后,稽核时会出现不同的条数。MySQL及Oracle模式下会将””引号内空值与null值合并,而pg数据库中空字符串跟null值是分隔开的。可以将表数据按照主键排序后导出,筛选出is null的数据,通过diff定位存在差异的数据,建议将pg模式下插入的’’进行update为null。
三、问题结论
在postgresql中,空字符串与null是不同的;而MySQL中(包括Oracle),空字符串与null等同。