2016-04-23 3 views
-3

Я использую:Недопустимое значение по умолчанию для «Дата и время» CURRENT_TIMESTAMP

'time' type(datetime) defult value(CURRENT_TIMESTAMP) 

, но он не работает, он показывает следующее сообщение об ошибке:

Invalid default value for 'Date' 

Пожалуйста, может кто-нибудь мне помочь?

+2

Отправьте сообщение об ошибке вместе со своим кодом! – Saty

+0

Share Схема таблицы/структура Изображение также? – C2486

+0

Возможный дубликат: http://stackoverflow.com/questions/11573586/invalid-default-value-for-date – spencer7593

ответ

1

Если вы работаете в MySQL версии 5.6.5 или более поздней версии

В вашем CREATE TABLE можно объявить столбец так:

`mydtcol` DATETIME DEFAULT CURRENT_TIMESTAMP 

до 5.6, это не представляется возможным использовать CURRENT_TIMESTAMP для DATETIME колонка. Это возможно с первым столбцом TIMESTAMP в таблице.

`mytscol` TIMESTAMP DEFAULT CURRENT_TIMESTAMP 

Если требуется столбец быть DATETIME типов данных, и вам потребуется значение столбца инициализирован при вставке строки, вы можете либо указать значение для столбца в INSERT заявление, например,

INSERT INTO mytable (...,mycol,...) VALUES (...,'2016-04-21 23:55:55',...) 

Или вы можете использовать триггер ДОБАВИТЬ, чтобы назначить значение столбцу.

DELIMITER $$ 

CREATE TRIGGER mytable_bi 
BEFORE INSERT ON mytable 
FOR EACH ROW 
BEGIN 
    IF new.mydtcol IS NULL THEN 
     SET new.mydtcol = NOW(); 
    END IF; 
END$$ 

DELIMITER ; 
+0

спасибо за помощь мне –