在没有load data命令的情况下填充数据库

时间:2010-10-09 23:28:39

标签: mysql sql

如何在不使用load data命令的情况下将数据(.csv文件)填充到MySql(Windows 5.1)中?

3 个答案:

答案 0 :(得分:1)

他们是否试图让您学习脚本语言? 如果是这样,那么Python ......

我刚刚测试过以下代码可以满足您的需求 请注意:您需要下载第三方MySQLdb模块。

import csv
import MySQLdb

def populate_mysql_db():
    conn = MySQLdb.connect(host="localhost",
        user="myusername",passwd="mypassword",db="mydb")
    c = conn.cursor()
    c.execute('''
        CREATE TABLE IF NOT EXISTS mytable 
        (mycol1 varchar(100), mycol2 integer);
        ''')
    csv_reader = csv.reader(open('mycsvfile.csv', 'rb'), delimiter=',')
    for line in csv_reader:
        c.execute('''INSERT INTO mytable (mycol1, mycol2) 
            VALUES (%s, %s)''', (line[0],line[1]))
    c.close()
    conn.close()

if __name__ == "__main__":
    populate_mysql_db()

答案 1 :(得分:0)

你有什么工具?任何一种脚本语言?任何管理界面,如MySQL Admin?

有很多方法可以将数据加载到数据库中。但是我们需要知道你手头有哪些工具。

修改

您的一个选择是制作.sql批处理文件。最快加载方法是使用预准备语句。请查看以下内容。

PREPARE massInsert 'INSERT INTO mytable (field1, field2, field3...) VALUES (?,?,?,?...)';
EXECUTE massInsert (value1, value2...);
many lines
...

答案 2 :(得分:0)

试试这个:

  

将*。*上的文件授予由'yourpassword'标识的youruser @ localhost;