Неверное значение по умолчанию для dateAdded - PullRequest
82 голосов
/ 25 января 2012

У меня тупая проблема с SQL, которую я не могу исправить.

ALTER TABLE  `news` 
 ADD  `dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT ,
 ADD PRIMARY KEY (  `dateAdded` )

Ошибка:

(#1067)Invalid default value for 'dateAdded'

Может кто-нибудь мне помочь?

Ответы [ 7 ]

129 голосов
/ 25 января 2012

CURRENT_TIMESTAMP допустимо только для полей TIMESTAMP.DATETIME поля должны быть либо с нулевым значением по умолчанию, либо без значения по умолчанию вообще - значения по умолчанию должны быть постоянными, а не результатом выражения.

соответствующие документы: http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html

Вы можете обойти это, установив триггер пост-вставки в таблицу, чтобы заполнить значение «сейчас» для любых новых записей.

45 голосов
/ 17 сентября 2014

CURRENT_TIMESTAMP зависит от версии и теперь разрешено для DATETIME столбцов начиная с версии 5.6.

См. Документы MySQL .

11 голосов
/ 06 июля 2016

Также обратите внимание, что при указании DATETIME как DATETIME(3) или как в MySQL 5.7.x, вы также должны добавить то же значение для CURRENT_TIMESTAMP(3).Если нет, он будет продолжать выдавать ' Неверное значение по умолчанию '.

0 голосов
/ 07 декабря 2017

У меня была такая же проблема, Следующее исправление решило мою проблему.

  • Выберите тип как «TIMESTAMP»

  • НИЧЕГО НЕ ВХОДИТ В ПОЛЕ ДЛИНЫ / ЗНАЧЕНИЙ. ДЕРЖИТЕ ЭТО ПУСТОЙ

  • Выберите CURRENT_TIMESTAMP в качестве значения по умолчанию.

Я использую MySQL версии 5.5.56

0 голосов
/ 13 ноября 2017

Измените тип с даты на время, и он будет работать! У меня была такая же проблема для MySQL 5.5.56-MariaDB - MariaDB Server Надеюсь, что это может помочь ... извините, если исключено

0 голосов
/ 08 декабря 2016

MySQL версии 5.5 установить значение даты и времени по умолчанию, как CURRENT_TIMESTAMP будет ошибка отчета вы можете обновить его до версии 5.6, в качестве значения по умолчанию для даты и времени установлено значение CURRENT_TIMESTAMP

0 голосов
/ 06 октября 2016

MySQL версии 5.6.27 на моем LEMP и CURRENT_TIMESTAMP как значение по умолчанию работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...