缺少NOT NULL TIMESTAMP的默认值?

时间:2017-10-18 14:36:45

标签: mysql timestamp

我想从framadate软件执行以下mysql语句。

CREATE TABLE IF NOT EXISTS `sondage` (
  `id_sondage` char(16) NOT NULL,
  `commentaires` text,
  `mail_admin` varchar(128) DEFAULT NULL,
  `nom_admin` varchar(64) DEFAULT NULL,
  `titre` text,
  `id_sondage_admin` char(24) DEFAULT NULL,
  `date_creation` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `date_fin` timestamp NOT NULL,
  `format` varchar(2) DEFAULT NULL,
  `mailsonde` tinyint(1) DEFAULT '0',
  `statut` int(11) NOT NULL DEFAULT '1' COMMENT '1 = actif ; 0 = inactif ; ',
  UNIQUE KEY `id_sondage` (`id_sondage`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

但我收到错误:Error in query (1067): Invalid default value for 'date_fin' 我想知道这意味着什么,因为date_fin没有给出默认值。

1 个答案:

答案 0 :(得分:1)

听起来我的MySQL服务器坚持要求您为date_fin列提供默认值。试试这个。

    ...
    `date_fin` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,   
    ...

通常,为NOT NULL列提供默认值是一种相当不错的做法。