当我尝试在我的数据库中导入转储时,它返回:
第 30001 行的错误 1064 (42000):您的 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 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 部分发现问题,但我仍然没有看到问题......我需要一双新的眼睛来帮助我。