Если вы работаете в 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 ;
Отправьте сообщение об ошибке вместе со своим кодом! – Saty
Share Схема таблицы/структура Изображение также? – C2486
Возможный дубликат: http://stackoverflow.com/questions/11573586/invalid-default-value-for-date – spencer7593