错误代码:1067。' last_visit'的默认值无效

时间:2016-03-06 16:23:00

标签: mysql mysql-workbench

即使我没有指定默认值,仍然在我的mysql语句中出现此错误。以前的回复说添加NOT NULL会修复它,但我仍然得到错误。奇怪的是,如果我切换date_joined和last_visit的行,我会得到相同的错误,除了date_joined。任何想法为什么它给出这个错误?感谢

CREATE TABLE user_info(
user_id serial,
oauth_provider VARCHAR(255) NOT NULL,
oauth_id VARCHAR(255) NOT NULL,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
date_of_birth date NOT NULL,
email VARCHAR(255) NOT NULL,
gender char NOT NULL,
date_joined timestamp NOT NULL,
last_visit timestamp NOT NULL,
account_enabled boolean NOT NULL,
CONSTRAINT user_info_pkey PRIMARY KEY (user_id)) ENGINE=InnoDB;

2 个答案:

答案 0 :(得分:0)

我使用你的代码和我一切工作: enter image description here

答案 1 :(得分:0)

如果您使用的是MySQL< 5.6您不能拥有2个具有相同默认值的时间戳列。

对于MySQL 5.5,请检查此http://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html

  

表中的一个TIMESTAMP列可以将当前时间戳作为初始化列的默认值,作为自动更新值,或两者。当前时间戳不可能是一列的默认值和另一列的自动更新值。

因此,如果您想要有2个带时间戳的列,请尝试此操作。

CREATE TABLE user_info(
user_id serial,
oauth_provider VARCHAR(255) NOT NULL,
oauth_id VARCHAR(255) NOT NULL,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
date_of_birth date NOT NULL,
email VARCHAR(255) NOT NULL,
gender char NOT NULL,
date_joined TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMPL,
last_visit TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP,
account_enabled boolean NOT NULL,
CONSTRAINT user_info_pkey PRIMARY KEY (user_id)
) ENGINE=InnoDB;