如何将MySQL查询输出保存到文件?
时间:2020-02-23 14:41:03 来源:igfitidea点击:
我们可以使用MySQL outfile语句将查询输出保存到文件中。
当查询结果很大并且您想通过将其导出到文件中进行分析时,这非常有用。
MySQL Outfile语句语法
outfile语法非常简单。
它应该是SQL查询的最后一部分。
{SQL Query} into outfile '{file_path}';
SQL查询输出将以文本格式保存到文件中。
将MySQL查询输出保存到文件
我们来看一些将MySQL查询输出保存到文件中的示例。
MariaDB [theitroad_wp]> select * from ahm_files into outfile '/tmp/ahm_files_data.txt'; Query OK, 270 rows affected (0.00 sec) MariaDB [theitroad_wp]>
输出将被重定向到文件。
它没有在MySQL控制台上打印。
如果打开文件,您将看到SQL查询数据另存为制表符分隔。
让我们运行另一个查询,该查询产生的输出很小,并将控制台输出与文件内容进行比较。
MariaDB [theitroad_wp]> select id, title, access from ahm_files limit 5; +----+--------------------------------------+--------+ | id | title | access | +----+--------------------------------------+--------+ | 1 | Hibernate Log4j Project | guest | | 2 | Hibernate EHCache Project | guest | | 3 | Hibernate HQL Project | guest | | 4 | Hibernate ManyToMany Mapping Project | guest | | 5 | Hibernate OneToMany Mapping Project | guest | +----+--------------------------------------+--------+ 5 rows in set (0.00 sec) MariaDB [theitroad_wp]>
错误情况
MySQL用户应具有在指定路径上创建文件的权限。
MariaDB [theitroad_wp]> select * from wp_posts into outfile '/root/wp_posts_data.txt'; ERROR 1 (HY000): Can't create/write to file '/root/wp_posts_data.txt' (Errcode: 13 "Permission denied") MariaDB [theitroad_wp]>
如果文件已经存在,则MySQL查询将不会重写或者追加到该文件。
由于文件已经存在,它只会引发错误。
MariaDB [theitroad_wp]> select * from ahm_files into outfile '/tmp/ahm_files_partial_data.txt'; ERROR 1086 (HY000): File '/tmp/ahm_files_partial_data.txt' already exists MariaDB [theitroad_wp]>