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/