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

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

我要将新的 table 添加到现有 table 的列表中:

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'

我该如何解决?

在 MySQL 中,'0000-00-00' 不是有效日期。根据 MySQL docs:

The DATE type is used for values with a date part but no time part. MySQL retrieves and displays DATE values in 'YYYY-MM-DD' format. The supported range is '1000-01-01' to '9999-12-31'.

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

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