mysql - 'last_modified' 的默认值无效

标签 mysql timestamp ddl

MySQL 分发版 5.5

操作系统:Ubuntu 14.04

我尝试使用以下命令将数据库 sql 脚本导入 MySQL:

mysql -u root databaseName < databaseName.sql

创建 BD 和加载转储时出现以下错误:

ERROR 1067 (42000) at line 5: Invalid default value for 'last_modified'

42000

CREATE TABLE IF NOT EXISTS `vote`.`user` (
  `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
  `first_name` VARCHAR(100) NOT NULL,
  `last_name` VARCHAR(100) NOT NULL,
  `username` VARCHAR(100) NOT NULL,
  `password` VARCHAR(100) NOT NULL,
  `phone` VARCHAR(20) NOT NULL,
  `enabled` TINYINT(1) NOT NULL,
  `last_modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `validation_code` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `username_idx` (`username` ASC),
  INDEX `first_last_name_idx` (`first_name` ASC, `last_name` ASC),
  INDEX `last_first_name_idx` (`last_name` ASC, `first_name` ASC),
  UNIQUE INDEX `phone_idx` (`phone` ASC))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

您知道导致此错误的原因吗?我该如何解决?

最佳答案

您需要在具有默认时间戳的列中使用 TIMESTAMP 数据类型。

`last_modified` DATETIME  NOT NULL DEFAULT CURRENT_TIMESTAMP,  /*wrong*/

`last_modified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,  /*right*/

关于mysql - 'last_modified' 的默认值无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32232441/

相关文章:

mysql - 在 mac yosemite 上安装 mySQL 时出错

python - 如何过滤数据帧的最后 8 小时?

sql - CREATE VIEW 必须是批处理中唯一的语句

sql - 在 Oracle 中描述查询结果的模式?

php - 使用联接的 Sql 查询

php - 在数据库中存储和更新抓取的数据

datetime - 在Hive中将 'Mon Dec 12 10:55:11 UTC 2016'转换为日期时间

ios - 将 Datetime c# 转换为 Objective c 和反转

spring - spring.jpa.hibernate.ddl-auto 属性在 Spring 中是如何工作的?

php - 生成按钮来更新 php 中的库存