假设我的数据库中有一个视图,并且我想将一个文件发送给某人以将该视图的输出创建为他们数据库中的一个表。
mysqldump 当然只导出 'create view...' 语句(好吧,它包括创建表,但没有数据)。
我所做的只是将视图复制为真实表并将其转储。但是对于一张大桌子来说,它既慢又浪费:
create table tmptable select * from myview
如果没有创建一个模仿 mysqldump 行为的脚本并执行此操作,是否有更好的方法?
一种选择是对 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'
好的,所以根据您的 CSV 失败评论,从 Paul 的回答开始。对其进行以下更改:
- FIELDS TERMINATED BY ','
+ FIELDS TERMINATED BY ',' ESCAPED BY '\'
完成后,在导入方面,您将执行“加载数据文件”并使用相同的终止/封闭/转义语句。