数据集成方案字段映射以“日期/时间”类型的字段作为候选键字段时的注意事项

1. 背景
日期和时间字段在不同的数据库字段可能具有不同的精度,存入的值可能发生变化(丢失精度,比如:毫秒数,或 毫秒数有变化),导致第二次更新时查询不到上次存入的数据。
可能导致产生两条:
1. 候选键字段有唯一约束(主键约束/唯一索引/唯一约束),那么会导致 违反唯一约束 的异常
2. 候选键字段无唯一约束(主键约束/唯一索引/唯一约束),那么会导致 持续新增数据。
2. 案例
2.1 timestamp字段同步映射到date
源数据准备:源数据的创建时间createtime字段是一个时间戳类型,精确到毫秒。有3条测试数据


目标表准备:目标的创建时间create_date是一个日期类型,精度为天,这里以postgre数据库举例(和mysql中datetime类型精度为秒的情况相同)


如上图所示,时间戳字段赋值给日期字段,精度必然会丢失。集成结果如下图:


数据只被保留了最后一条。因为create_date作为了候选键,只有第一次是插入数据,其余两次操作检测到目标有此条数据则更新操作,显然是不符合预期的。

create_date如果加了唯一约束。会导致违反唯一约束的异常。
数据集成方案字段映射以“日期/时间”类型的字段作为候选键字段时的注意事项
1. 背景日期和时间字段在不同的数据库字段可能具有不同的精度,存入的值可能发生变化(丢失精度,比如:毫秒数,或 毫秒数有变化),...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



