1

使用 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=MyISAMENGINE=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(用户新用户), KEY ' at line 22

提前感谢所有帮助。

4

3 回答 3

1

除了 改变TYPE改变ENGINE

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

  `cdate` timestamp NOT NULL,

这是SQLFiddle演示

于 2013-09-25T04:25:27.620 回答
0
) TYPE=MyISAM AUTO_INCREMENT=1 ;

将此替换为

) ENGINE = MYISAM AUTO_INCREMENT =1;

类型已替换为engine

TYPE 关键字已被贬低(从 5.0 开始)并且在 MySQL5.5 中不受支持(我认为甚至是 5.1)。代替 TYPE 关键字使用 ENGINE 关键字。

于 2013-09-25T04:02:20.903 回答
0

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

TYPE=MyISAM AUTO_INCREMENT=1 ;

将此替换为

引擎=MyISAM AUTO_INCREMENT=1;

cdate时间戳(14)不为空,

cdate时间戳不为空,

这对我有用

于 2014-11-17T16:58:02.310 回答