Почему я не могу использовать Current_timestamp в качестве значения по умолчанию в MySQL? - PullRequest
1 голос
/ 13 июля 2011

У меня есть база данных MySQL, настроенная локально с помощью phpmyadmin. Я хотел использовать доступные таблицы в удаленной базе данных, поэтому я экспортировал SQL из phpmyadmin и попытался запустить его на другой БД.

Вот что дал мне экспорт:

CREATE TABLE IF NOT EXISTS `messages` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Title` varchar(255) NOT NULL,
  `Message` text NOT NULL,
  `MsgType` varchar(10) DEFAULT NULL,
  `Important` int(1) NOT NULL DEFAULT '0',
  `Poster` int(5) DEFAULT NULL,
  `Date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=37 ;

Однако теперь он жалуется, что есть ошибка разбора

около 'CURRENT_TIMESTAMP, ПЕРВИЧНЫЙ КЛЮЧ (ID)) ДВИГАТЕЛЬ = MyISAM DEFA ".

Это сработало на моей локальной базе данных, почему не здесь? Что изменилось и как мне это исправить?

РЕДАКТИРОВАТЬ: я пытался использовать другие функции, такие как NOW () или CURDATE (), а также та же проблема.

1 Ответ

2 голосов
/ 13 июля 2011

Из документации :

Примечание. В более старых версиях MySQL (до 4.1) свойства типа данных TIMESTAMP существенно отличались в нескольких отношениях от описанногов этом разделе (см. справочное руководство MySQL 3.23, 4.0, 4.1);они включают в себя расширения синтаксиса, которые устарели в MySQL 5.1 и больше не поддерживаются в MySQL 5.5.Это имеет значение для выполнения дампа и восстановления или репликации между версиями MySQL Server.

MySQL 4.0.24 на данный момент невероятно устарел - рассмотрите возможность перехода на версию, которая начинается с 5.: -)

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