我希望更新我的数据库(其中已有数据),并向表中添加一列
这个新列是一个日期,我不希望它为空,也不希望它具有默认值。
由于我数据库中已经有数据,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/