错误代码 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,
...
我要将新的 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,
...