【发布时间】:2018-03-27 06:10:53
【问题描述】:
我有一个 MariaDB 版本 10.2.13-MariaDB-10.2.13+maria~jessie,有一个表 ids。该表的创建代码为:
CREATE TABLE `ids` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`lastupdate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, # for some reason this is being ignored
PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;
创建表时,lastupdate 列的默认值未设置。其实看HeidiSQL中CREATE的代码,我看到了... DEFAULT '' ...。
此外,以下查询运行没有错误,但不影响表
ALTER TABLE ids
MODIFY lastupdate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
而这个完全没问题
ALTER TABLE ids
MODIFY lastupdate TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00';
。这里可能出了什么问题?
实现细节: 数据库在一个 docker 容器中运行,该容器是从默认的 mariadb 图像扩展而来的。
【问题讨论】: