您的位置:首页 > 汽车 > 新车 > 【MySQL】将表导出CSV(可以使用excel打开)

【MySQL】将表导出CSV(可以使用excel打开)

2024/12/29 8:02:18 来源:https://blog.csdn.net/u010168781/article/details/142306173  浏览:    关键词:【MySQL】将表导出CSV(可以使用excel打开)

1、准备工作

查看数据库:

show databases;

切换数据库:

use 数据库名;

查看表名字

show tables;

2、单个表导出

需要替换导出csv文件目录和表名

SELECT *
INTO OUTFILE '目录/文件名.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM 表名;

如果表太大,excel无法打开,可以显示导出的行数,例如10000行

SELECT *
INTO OUTFILE '目录/文件名.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM 表名
LIMIT 10000;

3、导出全部表

当表太多的时候,可以使用下面的方法,一次性导出全部表;
需要替换数据库名。

DELIMITER //CREATE PROCEDURE ExportAllTablesToCSV()
BEGINDECLARE done INT DEFAULT FALSE;DECLARE tName VARCHAR(255);DECLARE tCursor CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = '数据库名';DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;OPEN tCursor;read_loop: LOOPFETCH tCursor INTO tName;IF done THENLEAVE read_loop;END IF;SET @stmt = CONCAT('SELECT * FROM ', tName, ' INTO OUTFILE \'', tName, '.csv\' FIELDS TERMINATED BY \',\' OPTIONALLY ENCLOSED BY \'"\' LINES TERMINATED BY \'\n\'');PREPARE s1 FROM @stmt;EXECUTE s1;DEALLOCATE PREPARE s1;END LOOP;CLOSE tCursor;
END //DELIMITER ;CALL ExportAllTablesToCSV();

4、修复

如果在导出时,报错:

Table '表名' is marked as crashed and should be repaired

检查表:

check table 表名;

修复表:

repair table 表名;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com