首页 > 解决方案 > MySQL - ADD COLUMN 在其他列上引发错误

问题描述

我有一个存储订阅数据的表。

CREATE TABLE `subscription` (
  `StartTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `EndTime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `UserID` varchar(255) NOT NULL,
  `Plan` int(8) NOT NULL,
  `StripeSubID` varchar(63) DEFAULT NULL,
  PRIMARY KEY (`StartTime`,`UserID`),
  KEY `Plan` (`Plan`),
  KEY `UserID` (`UserID`),
  CONSTRAINT `subscription_ibfk_1` FOREIGN KEY (`Plan`) REFERENCES `plan` (`ID`) ON UPDATE CASCADE,
  CONSTRAINT `subscription_ibfk_2` FOREIGN KEY (`UserID`) REFERENCES `accounts` (`Username`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我想添加一个新列

ALTER TABLE subscription ADD COLUMN trial TINYINT DEFAULT 0 NOT NULL;

关键是当我运行查询时,我得到了错误

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

我在这里看不到问题,考虑到我正在添加一列而不触及该列EndTime。我在互联网上寻找类似的问题,但一无所获。
有什么我做错了吗?我正在运行 MySQL 版本5.7.32-0ubuntu0.18.04.1

标签: mysqlalter-table

解决方案


推荐阅读