MySQL加载数据-加载ColumnName=Value格式的文本文件

MySQL加载数据-加载ColumnName=Value格式的文本文件,mysql,load-data-infile,Mysql,Load Data Infile,在过去的几天里,我开始学习SQL,但在尝试将数据放入表中时遇到了困难 数据以以下格式存储在文本文件中: ColumnName1=SomeInteger ColumnName2=SomeInteger ColumnName3=SomeString ... etc 到目前为止,我已经成功地创建了一个大约有150列的表,我希望在了解更多内容后,通过剥离Python中的=SomeValue,将其分开并分组。然后在电子表格中使用CREATE TABLE包装列名。有点乱,但现在可以用了 现在我被困在以下几

在过去的几天里,我开始学习SQL,但在尝试将数据放入表中时遇到了困难

数据以以下格式存储在文本文件中:

ColumnName1=SomeInteger
ColumnName2=SomeInteger
ColumnName3=SomeString
... etc
到目前为止,我已经成功地创建了一个大约有150列的表,我希望在了解更多内容后,通过剥离Python中的=SomeValue,将其分开并分组。然后在电子表格中使用CREATE TABLE包装列名。有点乱,但现在可以用了

现在我被困在以下几点:

LOAD DATA INFILE 'path/to/file.txt'
INTO TABLE tableName
COLUMNS TERMINATED BY '\n'
LINES STARTING BY '=';
我试图让SQL将数据插入到指定的列名中,以防它们的顺序不总是相同,忽略等号,并使用唯一的文件名作为索引。 我还尝试用“\=”转义等于字符,因为MySQL文档提到应该忽略以参数开头的行之前的所有内容。键入以“ColumnName1=”开头的行可以忽略第一个实例,但这并不是我想要的,对其余的行也不起作用

如果有人能给我指出正确的方向,我并不反对阅读更多的文档或教程

编辑:行是这样分隔的:我得到了大约100000个ini文件。每个名为FirstName_LastName.ini的文件都保证了唯一性,并且每行数据都包含在ini文件中。我需要将陈旧的帐户存储方法带入21世纪。 据说MySQL的加载数据对于这种类型的任务来说速度特别快,这就是为什么我开始把它作为一种选择来研究的原因。我只是想知道是否有可能操纵它来处理我格式的数据,或者我最好通过解析器来处理所有100k文件。如果有魔术师在读这篇文章,我仍然愿意接受使用SQL的建议


p、 s:如果有人对如何将我的数据从这种文本格式转换成单独的表有更好的想法,我也很乐意听到他们的意见。

就我个人而言,我可能会用python完成整个工作,使用MySQLdb模块,该模块可能在您最喜欢的发行版中名为python MySQLdb或MySQL python的包中提供。将数据格式化为元组列表,然后插入。示例来自:


我不确定我是否理解您的源文件的样子。。。您有一个文件,其中每行有一个列名和值?你如何划分行?坦率地说,我将重点清理文件,使其符合“加载数据填充”所期望的格式,即每插入一行一行,所有这些都具有一致的列顺序。
import MySQLdb

datalist = [("Spam and Sausage Lover's Plate", 5, 1, 8, 7.95 ),
            ("Not So Much Spam Plate", 3, 2, 0, 3.95 ),
            ("Don't Wany ANY SPAM! Plate", 0, 4, 3, 5.95 )]

db = MySQLdb.connect(user='dude', passwd='foo', db='mydatabase')
c = db.cursor()

c.executemany(
    """INSERT INTO breakfast (name, spam, eggs, sausage, price)
    VALUES (%s, %s, %s, %s, %s)""",
    datalist)