我需要将 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'。