MariaDB,DEFAULT CURRENT_TIMESTAMP不保存

时间:2018-03-26 16:39:24

标签: docker mariadb

我有一个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容器中运行。

1 个答案:

答案 0 :(得分:0)

这可能是HeidiSQL(或HeidiSQL的特定版本)的问题,而不是MariaDB本身的问题。

您可以使用MariaDB客户端(mysql)验证这一点并运行CREATE TABLE查询,然后:

SHOW CREATE TABLE ids;