Mysql 修改表日期不为空

标签 mysql date null alter

我希望更新我的数据库(其中已有数据),并向表中添加一列

这个新列是一个日期,我不希望它为空,也不希望它具有默认值。

由于我数据库中已经有数据,mysql不允许我插入非空数据,所以我尝试的是插入可能为空的列,插入我的所有数据,然后将其设置为非空像这样

ALTER TABLE `Test`.`rct` 
ADD COLUMN `dte` DATE NULL AFTER `id`;

--Insert logic here, and now every single rows has a value

ALTER TABLE `Test`.`rct` 
MODIFY `dte` DATE NOT NULL AFTER `id`;

但是当我这样做时,我收到以下错误: 日期值不正确:列为“0000-00-00”

但是我检查并重新检查,没有任何地方有 0000-00-00 值

那么如何将该列设置为 null 而不将其设置为默认值?

谢谢。

最佳答案

所以,如果当我不修改位置(id之后)时,由于某种原因,它会起作用!

ALTER TABLE `Test`.`rct` 
MODIFY `dte` DATE NOT NULL;

不知道为什么......但是当我进行描述时,我得到了我想要的。

关于Mysql 修改表日期不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21734559/

相关文章:

mysql - 使用事件记录进行 get_where 和 left join 时出现错误

javascript - Python Pandas read_excel 和 to_json 日期格式错误

java - 不可能出现 NullPointerException

mysql - 带 NULL 的唯一键

mysql - 时差(分钟)

php - 警告 1264 超出为列(日期时间列)调整的值范围

php - 在 Yii 中使用临时列名的 MySQL 查询

java - 计算两个日期之间的小时数,不包括周末

java - 如何将Oracle日期格式转换为Java?

java - 为什么 `exception` 在任何地方都看不到?