2017-10-18 160 views
1

我想從framadate軟件執行以下mysql語句。缺少NOT NULL TIMESTAMP的默認值?

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

這聽起來像你的MySQL服務器堅持要爲你的date_fin列提供默認值。嘗試這個。

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

在一般情況下,這是一個相當不錯的做法,爲NOT NULL列提供的缺省值。