2014-11-22 4 views
0

Может кто-нибудь сказать мне, что мне не хватает по этому запросу? Он продолжает придумывать:Ошибка 1067 недопустимое значение по умолчанию для EndDate

Ошибка 1067: недопустимое значение по умолчанию для EndDate

CREATE TABLE `course_info`(
`student_id` VARCHAR (35), 
`course_id` INT NOT NULL AUTO_INCREMENT, 
`name`  VARCHAR(45) NOT NULL, 
`module` VARCHAR(45) NOT NULL, 
`StartDate` TIMESTAMP, 
`EndDate` TIMESTAMP, 
`course_Update` TIMESTAMP, 
PRIMARY KEY(`course_id`), 
FOREIGN KEY(`student_id`) 
REFERENCES student(`student_id`) 
) 
ENGINE = InnoDB; 

ответ

1

Вы можете понять причину вашей ошибки от официального documentation:

NO_ZERO_DATE режим влияет на то, разрешает ли серверу «0000-00-00» в качестве действительной даты. Его влияние также зависит от того, включен ли строгий режим SQL .

  • Если этот режим не включен, допускается «0000-00-00», и вставки не выдают никаких предупреждений.
  • Если этот режим включен, допускается «0000-00-00», а вставки выдают предупреждение.
  • Если этот режим и строгий режим разрешены, «0000-00-00» недопустимо, а вставки создают ошибку, если IGNORE не указан как . Для INSERT IGNORE и UPDATE IGNORE разрешено «0000-00-00» , а вставки выдают предупреждение.

Как говорится, вы можете вставить 0000-00-00 даты с IGNORE опцией. Это для вставки.

В вашем случае, все, что вам нужно сделать, это добавить NOT NULL ограничение на ваши TIMESTAMP поля, чтобы избежать значения по умолчанию 0000-00-00 следующим образом:

StartDate TIMESTAMP NOT NULL, 
EndDate TIMESTAMP NOT NULL, 
course_Update TIMESTAMP NOT NULL, 

EDIT 1:

После вашего комментария вам необходимо отредактировать файл my.cnf, если вы находитесь в Linux или файле my.ini, если вы находитесь в Windows, чтобы включить строгий режим SQL. Вы найдете, как это сделать на SQL-mode

+0

Я сделал то, что вы мне сказали, но он по-прежнему сталкивается с той же ошибкой. : S – Edrian

+0

@Edrian, просто объявив свой стол, как вы сказали по вашему вопросу, и вы получили ту же ошибку? –

+0

@Edrian вы используете linux или windows? –

Смежные вопросы