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;
似乎对我来说很好:(能够构建没有错误的模式)