2017-10-18 5 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 

는하지만 오류를 얻을 : date_fin 주어진 기본값이 없기 때문에 Error in query (1067): Invalid default value for 'date_fin' 나는 그게 무슨 뜻인지 궁금합니다.

답변

1

여러분의 MySQL 서버가 여러분의 date_fin 컬럼의 기본값을 제공 할 것을 주장하는 것처럼 들립니다. 이 시도.

일반적으로
... 
    `date_fin` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    ... 

, 그것은 NOT NULL 열에 대한 디폴트 값을 제공하기 위해 합리적으로 좋은 방법입니다.