错误代码1067,SQL状态42000:编译表时“memberSince”的默认值无效

时间:2016-08-04 19:29:21

标签: mysql sql ddl mysql-error-1067

我正在将新表添加到现有表的列表中:

CREATE TABLE Counselor (
    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    firstName VARCHAR (50),
    nickName VARCHAR (50),
    lastName VARCHAR (50),
    telephone VARCHAR (25),
    email VARCHAR (50),
    memberSince DATE DEFAULT '0000-00-00',
    PRIMARY KEY (id)
);

执行被中断,并显示以下消息:

Error code 1067, SQL state 42000: Invalid default value for 'memberSince'

我该怎么做才能解决它?

1 个答案:

答案 0 :(得分:0)

在MySQL中,'0000-00-00'不是有效日期。根据{{​​3}}:

  

DATE类型用于具有日期部分但没有时间部分的值。 MySQL以'YYYY-MM-DD'格式检索并显示DATE值。支持的范围是'1000-01-01'到'9999-12-31'。

如果您没有可以使用的有意义的默认值,我建议使用NULL

CREATE TABLE Counselor (
...
memberSince DATE DEFAULT NULL,
...