我正在尝试将.csv文件导入表格。我已经弄清楚如何使用以下查询来插入数据:
LOAD DATA INFILE 'examplesofdata.csv' INTO TABLE coins FIELDS TERMINATED BY ','
ENCLOSED BY '' ESCAPED BY '\\' IGNORE 1 LINES;
然而,对于我的几个字段,我有阿拉伯语内容,可以作为一系列输入?我假设这是因为我没有正确整理数据库或者我没有完全理解LOAD DATA INFILE查询。任何建议都将不胜感激。
SHOW CREATE TABLE硬币;输出是:
CREATE TABLE `coins` (
`cat_num` int(11) NOT NULL,
`reg_num` int(11) NOT NULL,
`period` varchar(255) NOT NULL,
`arb_period` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL,
`ruler` varchar(255) NOT NULL,
`arb_ruler` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL,
`mint` varchar(255) NOT NULL,
`arb_mint` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL,
`date` varchar(255) NOT NULL,
`weight` float NOT NULL,
`diameter` float NOT NULL,
`khedieval_num` varchar(255) NOT NULL,
`ref` text NOT NULL,
PRIMARY KEY (`cat_num`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
答案 0 :(得分:4)
LOAD DATA LOCAL INFILE'filename'INTO TABLE tablename CHARACTER SET utf8 由'\ n'终止的列'\ n'终止于'\ n';
CHARACTER SET utf8 可以解决问题。
答案 1 :(得分:2)
这仍然是MySQL的一个错误。但是,我发现数据库的默认字符集是罪魁祸首。有两种可能的解决方法:
答案 2 :(得分:1)
所以我最终从一位老教练那里得到了我的数据库课程的答案。他告诉我,这个问题实际上是当前版本的MySQL的一个报告错误,当时唯一已知的解决方案是通过PHP或其他脚本语言手动导入数据。
此问题的错误发生在:http://bugs.mysql.com/bug.php?id=10195
这对我没什么帮助,因为我只是在制作一个原型,并且同时管理了一个解决方法,但希望它对你有用。
答案 3 :(得分:0)
如何设置CHARACTER SET utf8_unicode
或您的语言区域?
答案 4 :(得分:0)
我还发现你的character_set_client也需要是UTF-8:
mysql> show session variables like 'char%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | latin1
...
阅读mysql文档,了解如何更改who服务器或仅更改会话。
答案 5 :(得分:0)
我也遇到过这个问题,但是我没有收集到一系列问题,而是收到了截断数据。
就像“aeióu”在“aei”中被截断一样。
检查我提出的解决方案here,您需要将CSV字符集与LOAD DATA INFILE
字符集匹配。
干杯
答案 6 :(得分:0)
将CHARACTER SET utf8
添加到LOAD DATA
语句是最接近的答案。但是,还提出了另外两个问题......
当尝试使用utf8 / utf8mb4时,如果您看到问号(常规问号,而不是黑色钻石),
CHARACTER SET utf8
(或utf8mb4)。解决这个问题。尝试使用utf8 / utf8mb4时,如果看到截断文字,