【问题标题】:MariaDB, DEFAULT CURRENT_TIMESTAMP not savingMariaDB,DEFAULT CURRENT_TIMESTAMP 未保存
【发布时间】: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 图像扩展而来的。

【问题讨论】:

标签: docker mariadb


【解决方案1】:

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

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

SHOW CREATE TABLE ids;

【讨论】:

  • 它在运行旧版本 MariaDB 的其他数据库上运行良好,所以我认为情况并非如此。但是,更新 HeidiSQL 解决了这个问题,所以看起来这是特定 HeidiSQL/MariaDB 版本组合的问题。谢谢!
猜你喜欢
  • 2023-03-22
  • 2017-04-26
  • 1970-01-01
  • 2014-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-09
  • 2013-10-24
相关资源
最近更新 更多