我有一个平面文件数据库(是的,我知道 - 最糟糕的是它是1.4GB),我正在将它移动到MySQL数据库。问题是我不知道该怎么做 - 我已经检查了这里的每个相关问题,但没有涉及我想做什么,也没有涉及我的数据库当前是如何设置的。
我当前的平面文件数据库设置为普通MySQL行是其自己的文件,并且MySQL表将是目录。因此,例如,如果您有一个名为Jon的用户,则会在名为/ members /的目录中为该用户提供一个文件。在该文件中将是用户的各种信息,包括用户ID,等级等 - 全部由选项卡分隔,全部在单独的行(userid \ t4)。
所以这是一个示例用户文件:
userid 4
notes staff notes: bla bla staff2 notes: bla bla bla
username Example
那么如何在MySQL中将上述内容转换为自己的行和字段?如果可能的话,我可以一次完成数千个这样的文件吗?
感谢。
答案 0 :(得分:1)
这似乎是一个相当简单的脚本问题。
请参阅下面的示例(伪代码),了解如何将user
目录读入user
表。
显然,你会希望它更健壮,有错误检查/数据验证,但只是为了透视,见下文:
for file in list_dir('/path/to/users/'):
line_data = dict()
for line in open(file, 'r'):
key, value = line.split("\t", 1)
line_data[key] = value
mysql_query('''
INSERT INTO
users
SET
user_id = $1,
foo = $2,
bar = $3
''',
(
line_data['user_id'],
line_data['foo'],
line_data['bar']
)
)
答案 1 :(得分:0)
LOAD DATA INFILE用于CSV文件,而你的用户不是,所以:
或写一个“愚蠢”程序(php运行良好),为你完成所有这些工作。