Ошибка SQL версии 5.5.15 - PullRequest
       19

Ошибка SQL версии 5.5.15

1 голос
/ 15 ноября 2011

Может кто-нибудь показать или сказать мне, что не так в этом блоке? Я не могу видеть это.

#--------------------------------------------------------
#
# Table structure for table 'user'
#
DROP TABLE IF EXISTS __TABLE_PREFIX__user;
CREATE TABLE __TABLE_PREFIX__user (
  username varchar(32) DEFAULT '' NOT NULL,
  level int(11) DEFAULT '0' NOT NULL,
  password varchar(41) DEFAULT '' NOT NULL,
  first_name varchar(64) DEFAULT '' NOT NULL,
  last_name varchar(64) DEFAULT '' NOT NULL,
  email_address varchar(63) DEFAULT '' NOT NULL,
  time_stamp timestamp(14),
  status enum('INACTIVE','ACTIVE') DEFAULT 'ACTIVE' NOT NULL,
  uid int(11) NOT NULL auto_increment,
  session varchar(32),
  PRIMARY KEY (username),
  KEY uid (uid)
);

База данных сказала:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(14), status enum('INACTIVE','ACTIVE') DEFAULT 'ACTIVE' NOT NULL, uid int(11' at line 8

1 Ответ

2 голосов
/ 15 ноября 2011

Синтаксис TIMESTAMP(n), обозначающий длину, устарел и больше не поддерживается в MySQL 5.5. Вместо этого используйте:

time_stamp timestamp,

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

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

См. Также Руководство по обновлению .

...