【发布时间】:2018-04-04 02:29:29
【问题描述】:
当使用 pgloader 将表从 MySQL 移动到 Postgres 时,我遇到的一个问题是某些源 MySQL 表可以在 datetime 字段中包含 NULL 或 0000-00-00 00:00:00 值,并且对其中一些进行转换列被证明是有问题的。
我经常遇到的一个错误示例是:
ERROR Database error 23502: null value in column "created_at" violates not-null constraint.
鉴于该值必须是非空的,理想的 CAST 语句应该是什么?我用过:--cast "type date drop not null drop default using zero-dates-to-null",如果我理解正确的话,它会在 Postgres 中转换为 NULL 值。是否有关键字可以转换为特定日期或非空值?也许是一种更理智的方法?
我已经考虑修改源表,使其日期类似于纪元时间,但这充其量只是临时修改,并且会根据 MySQL 表更改一些报告。
【问题讨论】:
标签: mysql postgresql pgloader