Python 在mysql文件中加载数据后设置为空
我使用pymysql将一个大型csv文件加载到数据库中,因为内存限制,我使用load Infle而不是insert。但是,在代码完成后,当我向服务器查询表中的数据时,它返回一个空集Python 在mysql文件中加载数据后设置为空,python,mysql,Python,Mysql,我使用pymysql将一个大型csv文件加载到数据库中,因为内存限制,我使用load Infle而不是insert。但是,在代码完成后,当我向服务器查询表中的数据时,它返回一个空集 import pymysql conn = pymysql.connect(host = 'localhost', port = 3306, user = 'root', passwd = '', local_infile = True) cur = conn.cursor() cur.execute("CRE
import pymysql
conn = pymysql.connect(host = 'localhost', port = 3306, user = 'root', passwd = '', local_infile = True)
cur = conn.cursor()
cur.execute("CREATE SCHEMA IF NOT EXISTS `test`DEFAULT "
"CHARACTER SET utf8 COLLATE utf8_unicode_ci ;")
cur.execute("CREATE TABLE IF NOT EXISTS "
"`test`.`scores` ( `date` DATE NOT NULL, "
"`name` VARCHAR(15) NOT NULL,"
"`score` DECIMAL(10,3) NOT NULL);")
conn.commit()
def push(fileName = '/home/pi/test.csv', tableName = '`test`.`scores`'):
push = """LOAD DATA LOCAL INFILE "%s" INTO TABLE %s
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(date, name, score);""" % (fileName, tableName)
cur.execute(push)
conn.commit()
push()
我收到了一些截断警告,但没有其他错误或警告。关于如何解决这个问题有什么想法吗?我做了一些事情来解决这个问题,首先我更改了我的sql server的配置文件以允许加载填充,接下来就是。然后是线路的问题,
LINES TERMINATED BY '\r\n'
解决办法是把它改成
LINES TERMINATED BY '\n'
之后,脚本运行良好,比逐行插入要快得多