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

标签 mysql sql database alter

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

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

给我回应

错误 1067 (42000):“modifiedDate”的默认值无效

我不明白为什么在更改表格时需要为列设置默认值?

最佳答案

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

我认为该表的modifiedDate设置不正确,我将其更改为使用CURRENT_TIMESTAMP而是使用以下命令

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

此后一切正常。下面是之前对这一行的描述:

| Field | Type | Null| Key | Default<br/> | modifiedDate | timestamp | NO | | 0000-00-00 00:00:00

之后:

| Field | Type | Null| Key | Default<br/> | modifiedDate | timestamp | NO | | CURRENT_TIMESTAMP

关于mysql - 添加一列需要另一列的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35911633/

相关文章:

mysql - Prestashop - ListView 过滤器

mysql - 使用 Joins 和 Where 插入表中

mysql - SQL排名查询

mysql - 加入操作重复

mysql - 简单的 MySQL 查询,ON JOINS

javascript - Mysql 查询结果没有给我正确的结果

java - sql中删除的困惑

php - 在 MySQL 中使用表别名作为列

mysql - 从 2 个带有重复记录的 MySQL 表中查询数据

mysql - 如何在旧版 MySQL(例如 5.0 或 5.1)中强制使用外键(ID1、ID2)?