我想在名为“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.
我的问题是,如何在不插入唯一值的情况下添加一个也是强制性的新列?
当您向具有现有数据的表中添加一列时,将为每个现有行添加该列。由于您指定了“非空”约束,因此这些行现在需要 some 值。如果您没有指定唯一约束,它不一定是唯一的,但它确实需要指定类型的 NOT NULL 值。
通常,当我们进行这种迁移工作时,它会经过几个步骤的更改以达到最终形式。也许您在一个阶段添加了没有“not null”约束的列,然后添加正确的唯一值,然后应用 NOT NULL 和 UNIQUE 约束。不必一步到位。