添加列需要另一列的默认值吗?

时间:2016-03-10 08:54:04

标签: mysql sql database alter

我在表格中添加了一列,但它告诉我我没有为表格的另一列设置默认值;

ALTER TABLE `myDatabase`.`myTable` ADD myNewColumn varchar(2);

给我回复

ERROR 1067 (42000): Invalid default value for 'modifiedDate'

我不知道为什么在我改变表格时需要为列设置默认值?

1 个答案:

答案 0 :(得分:0)

问题在于我的表定义,而不是命令本身。

该表修改了日期设置不正确我假设,我将其更改为使用CURRENT_TIMESTAMP而不是以下命令

ALTER TABLE myTable MODIFY column modifiedDate timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP;

在此之后一切正常。以下是此行的描述:

| Field | Type | Null| Key | Default
| modifiedDate | timestamp | NO | | 0000-00-00 00:00:00

之后:

| Field | Type | Null| Key | Default
| modifiedDate | timestamp | NO | | CURRENT_TIMESTAMP