如何为同一个sql文件使用不同的“ERROR 1064(42000)”?

时间:2012-11-22 06:08:22

标签: mysql sql phpmyadmin

当我尝试在数据库中导入转储时,它返回:

  

错误1064(42000)在第30001行:您的SQL中有错误   句法;查看与MySQL服务器版本对应的手册   要在第25行附近使用正确的语法。

sql文件已与MySQL 5.1.2一起导出。

奇怪的是,每次我尝试导入时,错误行都显示出变化!它可以是上面的行“30001”,或者行“400”,“57000”......没有我更改.sql文件!

导入的sql文件的内容是:

CREATE TABLE IF NOT EXISTS `geonames2` (  
`geonameid` int(10)    unsigned NOT NULL DEFAULT '0',  
`name` varchar(200) NOT NULL DEFAULT    '',   
`ansiname` varchar(200) NOT NULL DEFAULT '',  
`alternatenames`    varchar(2000) NOT NULL DEFAULT '',   
`latitude` double NOT NULL    DEFAULT '0',   
`longitude` double NOT NULL DEFAULT '0',      
`feature_class` char(1) DEFAULT NULL,   
`feature_code` varchar(10)    DEFAULT NULL,   
`country_code` char(2) DEFAULT NULL,   
`cc2`    varchar(60) DEFAULT NULL,   
`admin1_code` varchar(20) DEFAULT '',      
`admin2_code` varchar(80) DEFAULT '',   
`admin3_code` varchar(20)    DEFAULT '',   
`admin4_code` varchar(20) DEFAULT '',   
`population`    bigint(11) DEFAULT '0',   
`elevation` int(11) DEFAULT '0',      
`gtopo30` int(11) DEFAULT '0',   
`timezone` varchar(40) DEFAULT NULL,    
`modification_date` date DEFAULT '0000-00-00',   
PRIMARY KEY    (`geonameid`)  ) CHARSET=utf8;

然后,INSERT部分(我认为会产生问题):

INSERT INTO `geonames2` (`geonameid`, `name`, `ansiname`, `alternatenames`,      `latitude`, `longitude`, `feature_class`, `feature_code`, `country_code`, `cc2`, `admin1_code`, `admin2_code`, `admin3_code`, `admin4_code`, `population`, `elevation`, `gtopo30`, `timezone`, `modification_date`)     
     VALUES (1024032, 'Île Glorieuse', 'Ile Glorieuse', 'Glorieuse,Ile Glorieuse,Île Glorieuse', -11.55, 47.3, 'T', 'ISL', 'FR', '', '00', '', '', '', 0, 0, -9999, 'Europe/Paris', '2012-01-18'),
     (1024034, 'Île du Lys', 'Ile du Lys', 'Ile du Lise,Ile du Lys,Le Lys,Île du Lys', -11.5, 47.36667, 'T', 'ISL', 'FR', '', '00', '', '', '', 0, 0, -9999, 'Europe/Paris', '2012-01-18'),
     ...
     ...
     still 137, 000 rows !
     ...
     ...
     (2968290, 'Villes-sur-Auzon', 'Villes-sur-Auzon', 'Villes,Villes-sur-Auzon', 44.05669, 5.2343, 'P', 'PPL', 'FR', '', 'B8', '84', '843', '84148', 1100, 0, 295, 'Europe/Paris', '2011-07-19');

我花了一夜的时间在INSERT部分发现问题,但我仍然没有看到问题......我需要一双新眼睛来帮助我。

2 个答案:

答案 0 :(得分:0)

工作正常..我试图挖掘错误,但代码中没有错误。您的数据库工具可能有问题。而是转储只是将内容复制并粘贴到工具的sql选项卡中。它工作正常,你可以在sql小提琴上看到我的努力here

答案 1 :(得分:0)

脚本可能非常大,很难找到错误。错误行连接到数百或数千个语句之一。

尝试使用dbForge Studio for MySQL(免费快递版)中的Sql Document运行脚本。在Sql Document中打开SQL文件并按F5(执行),错误将加下划线。在专业版中,将在文档打开时检查语法错误。