【发布时间】:2011-04-22 22:57:57
【问题描述】:
我有一个数据库,其中旧代码喜欢在 Date 和 DateTime 列中插入“0000-00-00”而不是实际日期。所以我有以下两个问题:
- 我可以在数据库级别上做些什么来阻止它吗?我知道我可以将一列设置为非空,但这似乎并没有阻止这些零值。
- 检测日期字段中现有零值的最佳方法是什么?我有大约一百个表,每个表有 2-3 个日期列,我不想单独查询它们。
跟进:
默认值已设置为 null。很久以前,默认值为“0000-00-00”。一些代码仍然明确放置“0000-00-00”。我宁愿强制该代码抛出错误,以便隔离并删除它。
【问题讨论】:
-
我不敢相信 MySQL 不支持 CHECK 约束。我打算将其发布为答案,这不是一个选择。越来越多的,我理解 MySQL 的恨。自己从来没用过。
标签: mysql datetime date data-cleaning