当使用 pgloader 将表从 MySQL 移动到 Postgres 时,我遇到的一个问题是某些源 MySQL 表可以在字段中包含一个NULL
或0000-00-00 00:00:00
值datetime
,并且对其中一些列的转换被证明是有问题的。
我经常遇到的一个示例错误是:
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"
,如果我理解正确的话,它会转换为NULL
Postgres 中的一个值。是否有关键字可以转换为特定日期或非空值?也许是一种更理智的方法?
我已经考虑修改源表,使它们的日期类似于纪元时间,但这充其量只是一个临时的破解,并且会根据 MySQL 表更改一些报告。