我正在尝试将文本文件导入 MySQL 数据库,但我无法让第一个字段 (card_no) 完全填充到我的所有记录中。在我导入文件(不会产生任何错误)后,第一条记录正确显示,但其他记录没有。谁能告诉我如何解决这个问题? -- 以防万一,我使用 phpMyAdmin 来加载文件。 -- 感谢您的宝贵时间。
这是数据库的结构:
Field Type Collation Attributes Null
card_no smallint(6) Yes NULL
name varchar(100) latin1_swedish_ci No
artist varchar(30) latin1_swedish_ci Yes NULL
color varchar(25) latin1_swedish_ci Yes NULL
rarity varchar(1) latin1_swedish_ci Yes NULL
expansion varchar(50) latin1_swedish_ci Yes NULL
代码如下:
LOAD DATA LOCAL INFILE 'C:\\xampp\\tmp\\php43.tmp'
INTO TABLE `mtginfo` FIELDS TERMINATED BY ';'
ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY ',';
这是导入的文件:
"1";"Ajani Goldmane";"Aleksi Briclot";"White";"M";"Magic 2010",
"2";"Angel's Mercy";"Andrew Robinson";"White";"C";"Magic 2010",
"3";"Armored Ascension";"Jesper Ejsing";"White";"U";"Magic 2010",
"4";"Baneslayer Angel";"Greg Staples";"White";"M";"Magic 2010",
"5";"Blinding Mage";"Eric Deschamps";"White";"C";"Magic 2010"
这是输出示例:
card_no name artist color rarity expansion
1 Ajani Goldmane Aleksi Briclot White M Magic 2010
0 Angel's Mercy Andrew Robinson White C Magic 2010
0 Armored Ascensi Jesper Ejsing White U Magic 2010
0 Baneslayer Ange Greg Staples White M Magic 2010
0 Blinding Mage Eric Deschamps White C Magic 2010
最佳答案
所有新行都以一些空白开始。您应该处理它们指定 LINES STARTING BY 子句,例如-
LOAD DATA LOCAL INFILE 'd:\\1\\php43.tmp'
INTO TABLE 'C:\\xampp\\tmp\\php43.tmp'
FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\'
LINES STARTING BY ' ' TERMINATED BY ',';
关于mysql - 无法填充数据库的所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11132098/