SQL错误版本5.5.15

时间:2011-11-14 21:25:00

标签: mysql innodb myisam

任何人都可以在这个区块中显示或告诉我什么是错的?我看不到它。

#--------------------------------------------------------
#
# 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 个答案:

答案 0 :(得分:2)

表示长度的TIMESTAMP(n)语法已弃用,在MySQL 5.5中不再受支持。而是使用:

time_stamp timestamp,

来自MySQL TIMESTAMP documentation

  
    

在旧版本的MySQL(4.1之前版本)中,TIMESTAMP数据类型的属性在很大程度上与本节中描述的方式有很大不同(有关详细信息,请参阅MySQL 3.23,4.0,4.1参考手册);这些包括在MySQL 5.1中不推荐使用的语法扩展,在MySQL 5.5中不再受支持。这对在MySQL Server版本之间执行转储和恢复或复制有影响。如果您使用的是使用旧TIMESTAMP(N)语法定义的列,请在升级到MySQL 5.1或更高版本之前参见第2.19.1.2节“从MySQL 4.1升级到5.0”。

  

另见the upgrade guide