我有一个平面文件数据库(是的,我知道--最糟糕的是它只有1.4 to ),我正在把它移到MySQL数据库中。问题是,我不确定该怎么做--我已经检查了这里的所有相关问题,但没有一个与我想要做的事情有关,也没有一个与我的数据库当前的设置方式有关。
我当前的平面文件数据库的设置是,普通的MySQL行是它自己的文件,MySQL表是目录。因此,例如,如果您有一个名为Jon的用户,则在名为/members/的目录中将有一个该用户的文件。该文件中包含用户的各种信息,包括用户id、排名等,所有这些信息都由制表符分隔,并且都在单独的行上(userid\t4)。
下面是一个示例用户文件:
userid 4
notes staff notes: bla bla staff2 notes: bla bla bla
username Example
那么,如何在MySQL中将上述内容转换为它们自己的行和字段呢?如果可能的话,我可以一次处理数千个这样的文件吗?
谢谢。
发布于 2011-01-09 23:51:35
这似乎是一个相当微不足道的脚本问题。
关于如何将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']
)
)
发布于 2011-01-09 23:33:40
LOAD DATA INFILE用于CSV文件,而您的不是,因此:
或者写一个“愚蠢的”程序(php运行得很好),为你做所有这些工作。
https://stackoverflow.com/questions/4642525
复制