我需要将 sql table 导出到管道分隔的文本文件中,包括列名以及使用 python
I need to export a sql table into a pipe delimited text file including the column names as well using python
我目前正在使用以下内容,它导入的数据是逗号分隔的,没有列名。
此外,table 中的日期存在问题,因为 returns 所有日期列都为 "datetime.date(1925, 1, 24)",而 [=20= 中的实际日期] 就像“1925-01-24”。
import MySQLdb
conn = MySQLdb.connect(host = 'localhost', user = 'username', passwd = 'password', port = port, db = 'DBNAME')
cursor = conn.cursor()
query = """SELECT * FROM myschema.mytable;"""
cursor.execute(query)
FILE = cursor.fetchall()
with open('FILE.txt', 'w') as f:
for row in cursor:
f.write("%s\n" % str(row))
为什么要使用 python?
SELECT 'column name1', 'column name2'
UNION ALL
SELECT * FROM myschema.mytable INTO OUTFILE '/tmp/mytable.csv' FIELDS TERMINATED BY '|';
只需在 mysql 控制台中输入即可。请注意,如果您在此查询中遇到有关安全文件权限的错误,请执行
SHOW VARIABLES LIKE "secure_file_priv";
然后在之前的查询中使用指定的位置而不是'/tmp'。
我目前正在使用以下内容,它导入的数据是逗号分隔的,没有列名。
此外,table 中的日期存在问题,因为 returns 所有日期列都为 "datetime.date(1925, 1, 24)",而 [=20= 中的实际日期] 就像“1925-01-24”。
import MySQLdb
conn = MySQLdb.connect(host = 'localhost', user = 'username', passwd = 'password', port = port, db = 'DBNAME')
cursor = conn.cursor()
query = """SELECT * FROM myschema.mytable;"""
cursor.execute(query)
FILE = cursor.fetchall()
with open('FILE.txt', 'w') as f:
for row in cursor:
f.write("%s\n" % str(row))
为什么要使用 python?
SELECT 'column name1', 'column name2'
UNION ALL
SELECT * FROM myschema.mytable INTO OUTFILE '/tmp/mytable.csv' FIELDS TERMINATED BY '|';
只需在 mysql 控制台中输入即可。请注意,如果您在此查询中遇到有关安全文件权限的错误,请执行
SHOW VARIABLES LIKE "secure_file_priv";
然后在之前的查询中使用指定的位置而不是'/tmp'。