【发布时间】:2011-09-01 01:08:05
【问题描述】:
我正在尝试将大型文本文件导入 MySQL 数据库。 SQL语句如下:
LOAD DATA INFILE '/tmp/epf/full/album_popularity_per_genre'
INTO TABLE album_popularity_per_genre
CHARACTER SET UTF8 FIELDS TERMINATED BY X'01' LINES TERMINATED BY '\n'
IGNORE 45 LINES (export_date, storefront_id, genre_id, album_id, album_rank)
当我在phpMyAdmin 中运行它时,上面的工作有效,但是当我在 Python 中编写一个使用上述 SQL 语句的简单函数时,我得到一个错误。
这是 Python 代码,
def test():
dbConnection = MySQLdb.connect(
charset='utf8',
host='localhost',
user='root',
passwd='root',
db='epf')
cursor = dbConnection.cursor()
exStr = """LOAD DATA INFILE '/tmp/epf/full/album_popularity_per_genre'
INTO TABLE album_popularity_per_genre CHARACTER SET UTF8
FIELDS TERMINATED BY X'01' LINES TERMINATED BY '\n'
IGNORE 45 LINES
(export_date, storefront_id, genre_id, album_id, album_rank)"""
try:
cursor.execute(exStr)
except MySQLdb.Warning, e:
print "Warning %s" % (str(e))
except MySQLdb.IntegrityError, e:
print "Error %d: %s" % (e.args[0], e.args[1])
#Clean up
cursor.close()
dbConnection.close()
我得到的错误如下,
Warning Data truncated for column 'album_rank' at row 1
我现在的问题是,为什么原始 SQL 语句有效,但是当我尝试运行 Python 代码时,没有数据导入数据库?
【问题讨论】:
标签: python mysql phpmyadmin load-data-infile