将MySQL数据库打印到文本文件并重新上载的最简单方法

时间:2016-09-26 18:51:28

标签: mysql

我正在使用MySQL数据库,并希望具有将表转储到纯文本文件的功能,能够进行一些编辑,并重新上载文件,从而将表更改为文件的内容。最简单的方法是什么?我知道我可以SELECT * INTO file.txt,但我不确定我是否可以轻松上传该文件。我可以编写一个python脚本来运行命令,但它看起来很笨重,我理想地喜欢某种完整性保护以确保我不会删除数据库。

2 个答案:

答案 0 :(得分:0)

您要找的是mysqldump

一个例子:

{{1}}

答案 1 :(得分:0)

将其导出为CSV:

SELECT
    *
INTO
    OUTFILE '/path/file.csv'
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
FROM
    `table`;

这将创建一个标准的CSV文件

将其读回表格(结构相同)

DROP TABLE IF EXISTS `table2`;

CREATE TABLE `table2` LIKE `table`;

LOAD DATA INFILE
    '/path/file.csv'
INTO
    TABLE `table2`
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n';

我不会导回到同一个表中。我会导入一个新表以确保它一切正常,如果成功则删除初始表,然后将table2重命名为table:

DROP TABLE table;
RENAME TABLE table2 TO table;

如果您确实想要导回到同一个表中替换初始数据,请指定REPLACE

LOAD DATA INFILE
    '/path/file.csv'
REPLACE
INTO TABLE `table`
...

使用CSV的优点是您可以非常轻松地导入电子表格进行编辑