在现有表格中添加强制性日期列

问题描述 投票:0回答:1

我想在名为“PROJECT”的表中添加一个名为“start_date”的新列,并且我希望此列是强制性的。

我试过这个:

ALTER TABLE PROJECT
ADD start_date date NOT NULL;

返回错误:

ERROR 1292 (22007): Incorrect date value: '0000-00-00' for column 'start_date' at row 1. 
我的问题是,如何在不插入唯一值的情况下添加一个也是强制性的新列?

mysql alter-table notnull
1个回答
0
投票

当您向具有现有数据的表中添加一列时,将为每个现有行添加该列。由于您指定了“非空”约束,因此这些行现在需要 some 值。如果您没有指定唯一约束,它不一定是唯一的,但它确实需要指定类型的 NOT NULL 值。

通常,当我们进行这种迁移工作时,它会经过几个步骤的更改以达到最终形式。也许您在一个阶段添加了没有“not null”约束的列,然后添加正确的唯一值,然后应用 NOT NULL 和 UNIQUE 约束。不必一步到位。

© www.soinside.com 2019 - 2024. All rights reserved.