我想避免mysqldump,因为它的输出形式只对mysql来说是方便阅读的。CSV似乎更通用(每个表一个文件就可以了)。但是,如果mysqldump有什么优点,我会洗耳恭听。另外,我想要一些可以从命令行运行的东西(linux)。如果这是一个mysql脚本,指向如何创建这样的东西的指针将会很有帮助。
发布于 2009-01-21 23:18:03
如果您可以一次处理一个表,并且您的数据不是二进制的,那么可以使用mysql
命令的-B
选项。有了这个选项,它将生成TSV (制表符分隔)文件,这些文件可以很容易地导入到Excel等:
% echo 'SELECT * FROM table' | mysql -B -uxxx -pyyy database
或者,如果您可以直接访问服务器的文件系统,可以使用SELECT INTO OUTFILE
,它可以生成真实的CSV文件:
SELECT * INTO OUTFILE 'table.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM table
发布于 2009-01-21 23:39:00
在MySQL本身中,可以指定CSV输出,如下所示:
SELECT order_id,product_name,qty
FROM orders
INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
来自http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or-csv-file/
发布于 2012-05-10 02:00:40
您可以使用mysqldump's --tab
选项一次性转储整个数据库。您提供了一个目录路径,它将创建一个使用CREATE TABLE DROP IF EXISTS
语法的.sql
文件和一个内容以制表符分隔的.txt
文件。要创建逗号分隔的文件,您可以使用以下命令:
mysqldump --password --fields-optionally-enclosed-by='"' --fields-terminated-by=',' --tab /tmp/path_to_dump/ database_name
该路径需要对mysql用户和运行命令的用户都是可写的,所以为了简单起见,我建议先写chmod 777 /tmp/path_to_dump/
。
https://stackoverflow.com/questions/467452
复制相似问题