- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在本地计算机上工作的通用 LOAD DATA INFILE 语法是:
LOAD DATA [LOW_PRIORITY | CONCURRENT] LOCAL INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number LINES]
我正在用 Ruby 编写一个程序,该程序应该能够将各种 CSV 导入 MySQL 表中。
CSV 文件完美存储在变量中,并获取标题并完美创建表格。问题是我获得的每个 CSV 文件都不同,并且必须修改 LOAD DATA LOCAL INFILE
参数才能识别 CSV 文件格式。
例如,在一个 CSV 中,LINES TERMINATED BY
选项必须设置为 '\n'
,而在另一个 CSV 中,必须将其设置为 '\r'
。同样,在一个 CSV 中必须存在 ESCAPED BY '[char]'
才能正确导入,而在另一个 CSV 中则不得存在。
是否有任何可能的方法来提供多个值进行检查?就像 TERMINATED BY '\n or\r'
或 ENCLOSED BY '\or "'
?
编辑:
当我这样做时:
FasterCSV.foreach(csv) do |row|
@first = row
break
end
我得到了第一行。是否可以检测单行中的行终止符,无论是 \n
还是 \r\n
还是 \r
?
最佳答案
我也遇到了这个问题,所以我最终在加载每个文件之前为一些“testLines”编写了一个迷你解析器。
public static void findTerminator(File file) throws FileNotFoundException {
BufferedReader lines = new BufferedReader(new FileReader(file));
int countLines = 0;
int testLines = 15;
int c;
int[] terminators = { 0x0A, 0x0D, 0x0D0A }; //\n, \r, \r\n
int[] counters = { 0, 0, 0 };
try {
while (((c = lines.read()) != -1) && (countLines <= testLines)) {
for (int d = 0; d < terminators.length; d++) {
if (c == terminators[d]) {
counters[d]++;
countLines++;
}
}
}
}
catch (IOException e) { e.printStackTrace(); }
int max = 0;
int maxindex = 0;
for (int i = 0; i < counters.length; i++) {
if (max < counters[i]) {
max = counters[i];
maxindex = i;
}
}
terminator = (char)terminators[maxindex];
System.out.println("Terminator: '" + terminators[maxindex] + "'");
}
关于mysql - 使用 LOAD DATA INFILE 导入 CSV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19565955/
我在阅读中看到这段代码: void assure(std::ifstream& infile ) { if(!infile) { /* stuff */} } 出于好奇,我使用函数参数类型 if
我想在 Load data Infile 中使用一个变量作为文件名。我运行以下代码: Set @d1 = 'C:/Users/name/Desktop/MySQL/1/'; Set @d2 = con
所以我只需要一些关于如何修复这个程序的指导,所以我需要阅读一个名为“infile.txt”的文件,文件里面是描述应该绘制的形状的说明(一个大写字符, 即 R,T,D,S,E) 然后它给出应该填充形状的
我在 Google App Engine 工作,我们有一个 Python 脚本可以将数据转储到 Google Cloud SQL 中。我们必须转储的数据集之一非常巨大。我们每天转储一次大约 150K
LOAD DATA INFILE 和 LOAD DATA LOCAL INFILE 有什么区别? 最佳答案 来自MySQL documentation : If LOCAL is specified,
我正在尝试使用以下命令将数据加载到现有的表中:MySQL>LOAD DATA LOCAL INFILE‘/PATH/loth.txt’INTO TABLE LOCAL;。但不断收到错误:错误2068(
我无法在我的服务器上使用导出功能。我已经尝试过搜索,但我能具体得到的并不多。我已经尝试了这两个功能,每次都会出现相同的错误。这是我得到的错误 ./phantomjs highcharts-conver
我目前正在解析一些网站以提高我的 Unix Bash 技能。已提取出一个具有以下格式的文件 la-que-no-podia-capitulo-1 la-que-no-podia-capitulo-25
尝试让 MySQL 在通过 INFILE 命令导入时忽略特定行。本质上,它是 CSV 文件中的“标题”行。 LOAD DATA LOCAL INFILE 'C:\myfile.txt' REPLACE
当我加载 infile 时遇到问题,其内容中包含 IP 地址, 在文件里面 [10] Mon 08Jul19 00:10:05 - (8457737) file "D:\a\b\c\file.zip"
如果这个问题重复,我深表歉意,但我发现的大多数问题都与 InnoDB 有关,而我正在使用 MyISAM。 我正在尝试创建一个进程,将 200-3 亿条记录加载到表中。我正在使用 LOAD DATA I
我在 mysql 数据库中加载数据时遇到问题。我用它作为在我的数据库中插入数据的方法: USE database; ALTER TABLE country ADD UNIQUE INDEX idx_n
我正在读取一个文件,并且在这个 .dat 文件的中间有一个标记。第一部分是变量和它们要分配的值。我正在获取变量及其值。这是我的。 int main() { ifstream infile; strin
我有点把自己画在角落里,需要一些指导。我在从 infstream 读取时使用正则表达式进行一些解析。我想做的是 while(getLine(inFile, str)) { search(st
我有一个名为 /tmp/files.txt 的文件,其结构如下: 652083 8 -rw-r--r-- 1 david staff
我正在构建一个接受这种格式的输入文件的程序: title author title author etc and outputs to screen title (author) title (aut
我为客户创建了一个 csv 文件导入器,我遇到的问题是我在文件中得到了十进制值的截断值,例如: in .csv file price is 12,23 and in database it is sa
我有一个 TSV,我正试图将其写入 mySQL 表中。几列是时间格式,但它们与 HH:MM:SS 的标准时间格式不匹配,而是看起来像 HH:MM AM/PM 我看过使用 PHP 执行此操作的示例,但我
我试图将 LOAD DATA INFILE 用作存储过程,但它似乎无法完成。然后我尝试了像这样将代码嵌入到应用程序本身的常用方法, conn = new MySqlConnection(connStr
如何在远程数据库(不同机器)上使用本地文件执行以下命令? $MYSQL_PATH/mysql -u root -h remote.net files -e " LOAD DATA INFILE
我是一名优秀的程序员,十分优秀!