0

データベースにダンプをインポートしようとすると、次のように返されます。

30001行目のエラー1064(42000):SQL構文にエラーがあります。25行目の''の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

SQLファイルはMySQL5.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の部分で問題を発見するために夜を過ごしましたが、それでも問題はわかりません...私を助けてくれる新しい目が必要です。

4

2 に答える 2

0

正常に動作しています。エラーを掘り下げようとしましたが、コードにエラーはありません。DBツールに問題がある可能性があります。代わりに、ツールのSQLタブにコンテンツをコピーして貼り付けるだけでダンプします。それはうまく機能します、あなたはここsqlfiddleで私の努力を見ることができます。

于 2012-11-22T06:28:36.330 に答える
0

スクリプトは非常に大きくなる可能性があり、エラーを見つけるのが非常に困難になる可能性があります。数百または数千のステートメントの1つに接続されたエラー行。

dbForge Studio for MySQL(無料エクスプレス版)でSQLドキュメントを使用してスクリプトを実行してみてください。SQLドキュメントでSQLファイルを開き、F5(実行)を押すと、エラーに下線が引かれます。Professionalバージョンでは、ドキュメントを開くときに構文エラーがチェックされます。

于 2012-11-22T07:41:24.973 に答える