MySQL的默认值无效<;列>;
当我执行此语句时:MySQL的默认值无效<;列>;,mysql,default,Mysql,Default,当我执行此语句时: CREATE TABLE MG_FOLDER ( UUID CHAR(24) NOT NULL, NAME VARCHAR(100), OWNER VARCHAR(32), CREATED TIMESTAMP, MODIFIED TIMESTAMP, ARCH BOOLEAN, FOLDER_UUID CHAR(24), SERIAL INTEGER, CONSTRAINT FOLDER_PK PRIMARY KEY(UUID) ) ENG
CREATE TABLE MG_FOLDER (
UUID CHAR(24) NOT NULL,
NAME VARCHAR(100),
OWNER VARCHAR(32),
CREATED TIMESTAMP,
MODIFIED TIMESTAMP,
ARCH BOOLEAN,
FOLDER_UUID CHAR(24),
SERIAL INTEGER,
CONSTRAINT FOLDER_PK PRIMARY KEY(UUID)
) ENGINE = InnoDB
我得到这个错误:
Invalid default value for 'MODIFIED'
我认为我没有为
MODIFIED
设置默认值,那么是什么导致了问题?您需要在列中指定TIMESTAMP
任何带有默认当前时间戳、当前时间戳()或NOW()
的值以及其他带有默认NULL
的值或两者都带有默认NULL的值,但必须指定
CREATE TABLE IF NOT EXISTS `MG_FOLDER` (
`UUID` char(24) COLLATE utf8_unicode_ci NOT NULL,
`NAME` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`OWNER` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
`CREATED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`MODIFIED` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`ARCH` tinyint(1) DEFAULT NULL,
`FOLDER_UUID` char(24) COLLATE utf8_unicode_ci DEFAULT NULL,
`SERIAL` int(11) DEFAULT NULL,
PRIMARY KEY (`UUID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
似乎对我来说很好:(能够构建没有错误的模式)