【问题标题】:Dump MySQL view as a table with data将 MySQL 视图转储为包含数据的表
【发布时间】:2010-10-07 04:19:10
【问题描述】:

假设我的数据库中有一个视图,我想向某人发送一个文件,以在他们的数据库中创建该视图的输出作为表。

mysqldump 当然只导出 'create view...' 语句(嗯,好吧,它包括创建表,但没有数据)。

我所做的只是将视图复制为真实表格并将其转储。但是对于一张大桌子来说,它既慢又浪费:

create table tmptable select * from myview

没有创建一个模仿mysqldump行为的脚本并做到这一点,有没有更好的方法?

【问题讨论】:

  • 该视图包含一个空间列,我在使用 CSV 文件导入时遇到了问题。 :(
  • 有点关闭循环,终于开始整理并发布我为解决这个问题而编写的脚本。 github.com/barryhunter/fakedump - 它按照建议执行,只需运行“select * from view”之类的查询,然后实际将其写入类似 mysqldump 的格式。

标签: mysql view export


【解决方案1】:

一种选择是对 CSV 文件进行查询并将其导入。选择 CSV 文件:

来自http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or-csv-file/

SELECT order_id,product_name,qty
FROM orders
INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

【讨论】:

  • 如果你没有访问 mysql 服务器 shell 的权限,这是行不通的。还有其他解决方案吗?
【解决方案2】:

好的,所以根据您的 CSV 失败评论,从 Paul 的回答开始。对其进行以下更改:

 - FIELDS TERMINATED BY ','
 + FIELDS TERMINATED BY ',' ESCAPED BY '\'

完成后,在导入方面,您将执行“加载数据文件”并使用相同的终止/封闭/转义语句。

【讨论】:

  • 只是要指出,如果你使用\,你需要转义转义字符,像这样FIELDS TERMINATED BY ',' ESCAPED BY '\\'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-11
  • 1970-01-01
  • 2015-08-17
  • 2012-12-06
  • 1970-01-01
  • 2022-12-12
相关资源
最近更新 更多