简体   繁体   English

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

[英]Error code 1067, SQL state 42000: Invalid default value for 'memberSince' when compiling a table

I'm adding a new table to the list of existing tables: 我正在向现有表列表中添加一个新表:

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)
);

Execution is interrupted with the following message: 使用以下消息中断执行:

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

What can I do to fix it? 我该怎么办才能修复它?

In MySQL, '0000-00-00' is not a valid date. 在MySQL中, '0000-00-00'不是有效的日期。 According to the MySQL docs : 根据MySQL文档

The DATE type is used for values with a date part but no time part. DATE类型用于具有日期部分但没有时间部分的值。 MySQL retrieves and displays DATE values in 'YYYY-MM-DD' format. MySQL以'YYYY-MM-DD'格式检索并显示DATE值。 The supported range is '1000-01-01' to '9999-12-31'. 支持的范围是“1000-01-01”到“9999-12-31”。

I recommend using NULL if you don't have a meaningful default value you can use. 如果您没有可以使用的有意义的默认值,我建议使用NULL

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM