MySQL版本相关的语法错误

时间:2013-09-25 03:57:57

标签: mysql syntax-error mysql-error-1064

使用MySQL 5.5.23-55上传SQL脚本并使用phpMyadmin版本3.4.11.1导入时,我收到以下愚蠢错误:

SQL查询:

CREATE TABLE `dp_banks` (
  `id` int(11) NOT NULL auto_increment,
  `owner` int(11) NOT NULL default '0',
  `bname` varchar(128) NOT NULL default '',
  `baddress` varchar(128) NOT NULL default '',
  `bcity` varchar(64) NOT NULL default '',
  `bzip` varchar(16) NOT NULL default '',
  `bcountry` char(2) NOT NULL default '',
  `bstate` varchar(32) NOT NULL default '',
  `bphone` varchar(32) NOT NULL default '',
  `bnameacc` varchar(128) NOT NULL default '',
  `baccount` varchar(32) NOT NULL default '',
  `btype` char(2) NOT NULL default '',
  `brtgnum` varchar(9) NOT NULL default '',
  `bswift` varchar(32) NOT NULL default '',
  `status` tinyint(1) NOT NULL default '0',
  `default` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
MySQL说:

#1064 - 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 'TYPE=MyISAM AUTO_INCREMENT=1' at line 19

在网上进行研究,我发现了一篇建议将TYPE=MyISAM更改为ENGINE=MyISAM的文章。现在进行此更改会产生以下错误:

SQL查询:

CREATE TABLE `dp_confirms` (
  `id` int(11) NOT NULL auto_increment,
  `newuser` varchar(32) NOT NULL default '',
  `newpass` varchar(32) NOT NULL default '',
  `newquestion` varchar(255) NOT NULL default '',
  `newanswer` varchar(255) NOT NULL default '',
  `newmail` varchar(255) NOT NULL default '',
  `newfname` varchar(32) NOT NULL default '',
  `newlname` varchar(32) NOT NULL default '',
  `newcompany` varchar(128) NOT NULL default '',
  `newregnum` varchar(32) NOT NULL default '',
  `newdrvnum` varchar(32) NOT NULL default '',
  `newaddress` varchar(128) NOT NULL default '',
  `newcity` varchar(64) NOT NULL default '',
  `newcountry` char(2) NOT NULL default '',
  `newstate` varchar(32) NOT NULL default '',
  `newzip` varchar(32) NOT NULL default '',
  `newphone` varchar(64) NOT NULL default '',
  `newfax` varchar(64) NOT NULL default '',
  `sponsor` int(11) NOT NULL default '0',
  `confirm` varchar(255) NOT NULL default '',
  `cdate` timestamp(14) NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `newuser` (`newuser`),
  KEY `newmail` (`newmail`)
) ENGINE=MyISAM AUTO_INCREMENT=1 ;
MySQL说:

#1064 - 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) NOT NULL, PRIMARY KEY ( ID为), UNIQUE KEY {NEWUSER {1}} {NEWUSER {1}}

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

TYPE更改为ENGINE更改

  `cdate` timestamp(14) NOT NULL,
                   ^^^^

  `cdate` timestamp NOT NULL,

这是 SQLFiddle 演示

答案 1 :(得分:0)

) TYPE=MyISAM AUTO_INCREMENT=1 ;

将其替换为

) ENGINE = MYISAM AUTO_INCREMENT =1;

类型已替换为engine

TYPE关键字是折旧的(自5.0起),MySQL5.5不支持(我认为甚至是5.1)。而不是TYPE关键字使用ENGINE关键字。

答案 2 :(得分:0)

我的经验是我必须改变两件事:

  

TYPE = MyISAM AUTO_INCREMENT = 1;

将其替换为

  

ENGINE = MyISAM AUTO_INCREMENT = 1;

  

cdate timestamp(14)NOT NULL,

  

cdate时间戳NOT NULL,

这对我有用