Создать таблицу MySQL непосредственно из файла CSV, используя механизм хранения CSV? - PullRequest
52 голосов
/ 03 апреля 2012

Я только что узнал, что Mysql имеет собственный CSV-механизм хранения , который хранит данные в файле значений, разделенных запятыми для каждой таблицы.

Можно ли создать таблицу непосредственно из загруженного файла CSVфайл, что-то вроде:

CREATE TABLE USERS

, где users.csv загружен пользователем?

Ответы [ 12 ]

0 голосов
/ 28 марта 2017

Если вы согласны с использованием Python, Pandas отлично сработали для меня (csvsql навсегда завис в моем случае). Что-то вроде:

from sqlalchemy import create_engine
import pandas as pd

df = pd.read_csv('/PATH/TO/FILE.csv')
# Optional, set your indexes to get Primary Keys
df = df.set_index(['COL A', 'COL B'])

engine = create_engine('mysql://user:pass@host/db', echo=False)

df.to_sql(table_name, dwh_engine, index=False)

Также это не решает часть «использования CSV-движка», которая была частью вопроса, но также могла бы быть мне полезной.

0 голосов
/ 03 апреля 2012

Это невозможно, однако вы можете перезаписать существующий файл таблицы.Но убедитесь, что окончания строк в вашем файле имеют стиль Unix (заканчивающийся только \ n), а не стиль Windows (заканчивающийся \ r \ n), работаете ли вы под окнами или нет.

...