我有一个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';
。这里可能出现什么问题?
实施细节:数据库正在从默认mariadb
图像中简单扩展的docker容器中运行。
答案 0 :(得分:0)
这可能是HeidiSQL(或HeidiSQL的特定版本)的问题,而不是MariaDB本身的问题。
您可以使用MariaDB客户端(mysql)验证这一点并运行CREATE TABLE
查询,然后:
SHOW CREATE TABLE ids;