2016-09-26 54 views
0

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

+1

可能重复:http://stackoverflow.com/questions/11407349/mysql-how -to-出口和进口的-SQL文件从-comman d线 –

回答

0

你所寻找的是mysqldump

一个例子:

mysqldump db_name > backup-file.sql 
+0

除了编辑mysqldump文件可能会非常棘手。 – Barmar

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'; 

我不会导入回同一张表。我会导入到一个新表来正确确保它所有的作品,删除初始表,如果成功,然后重命名表2至表:

DROP TABLE table; 
RENAME TABLE table2 TO table; 

如果你真的想导入回到相同的表替换初始数据指定REPLACE

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

使用CSV的好处是,你可以导入到电子表格很容易地编辑

相关问题