我正在使用MySQL数据库,并希望具有将表转储到纯文本文件的功能,能够进行一些编辑,并重新上载文件,从而将表更改为文件的内容。最简单的方法是什么?我知道我可以SELECT * INTO file.txt
,但我不确定我是否可以轻松上传该文件。我可以编写一个python脚本来运行命令,但它看起来很笨重,我理想地喜欢某种完整性保护以确保我不会删除数据库。
答案 0 :(得分:0)
答案 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的优点是您可以非常轻松地导入电子表格进行编辑