2

ここにあるクエリを使用して、(ワークベンチを使用して) CSV ファイルを MySQL にインポートしようとしています。

LOAD DATA INFILE 'badBDay.csv' 
INTO TABLE user_birthdays 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
(username, user_birthday)

問題は、両方の列のデータを持たない行がファイルにあることです (つまり、誕生日が欠落している行があります)。

MySQL がエクスポートしたテーブル CREATE ステートメントは次のとおりです。

CREATE TABLE `user_birthdays` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(150) DEFAULT NULL,
  `user_birthday` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=65536 DEFAULT CHARSET=utf8$$

すべての列に値が含まれていないレコードがある場合、ファイルを読み込むにはどうすればよいですか?

アップデート

以下にいくつかのサンプル行を示します。完全に空白の行が 1 つあることがわかりました。それを削除するとエラーはなくなりましたが、テーブルにはまだデータがまったく入力されていないようです。(そして、場合によっては、ユーザー名が数値です。これは、アルファ ソートされたファイルの先頭からのものです。「実際の」ユーザー名を持つものは他にもあります。)

109,12/24/1979
124,03/31/1987
142,11/30/1965
143,
233,11/03/1970
311,
321,07/08/1971
4

1 に答える 1

3

ファイルに空白行がないことを確認する必要があります。フィールドの値が欠落している場合でも、区切り文字 (この場合はコンマ) が残っています。

ファイルが Windows マシンで生成された場合、行末記号を次のように変更する必要があるかもしれません。\r\n

LOAD DATA INFILE 'badBDay.csv' 
INTO TABLE user_birthdays 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\r\n' 
(username, user_birthday)
于 2013-08-27T21:41:08.947 に答える