Я пытаюсь импортировать большой текстовый файл в базу данных 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, данные не импортируются в базу данных?