bar*_*ter 12 mysql export view
假设我的数据库中有一个视图,我想向某人发送一个文件,以便将该视图的输出创建为数据库中的表.
mysqldump当然只导出'create view ...'语句(好吧,好吧,它包含了create table,但没有数据).
我所做的只是将视图复制为真实的表并转储它.但对于一张大桌子来说,这是缓慢而浪费的:
create table tmptable select * from myview
Run Code Online (Sandbox Code Playgroud)
如果没有创建一个模仿mysqldump行为的脚本,那么还有更好的方法吗?
同样的问题在这里我的问题是我想将视图定义(84 个字段和数百万条记录)导出为“创建表”语句,因为视图可以随时间变化,并且我想要一个自动过程。这就是我所做的:
mysql -uxxxx -pxxxxxx my_db -e "create table if not exists my_view_def as select * from my_view limit 0;"
mysqldump -uxxxx -pxxxxxx my_db my_view_def | sed s/my_view_def/my_view/g > /tmp/my_view.sql
mysql -uxxxx -pxxxxxx my_db -e "drop table my_view_def;"
SELECT * from my_view into outfile "/tmp/my_view.csv" fields terminated BY ";" ENCLOSED BY '"' LINES TERMINATED BY '\n';
然后您将拥有两个文件,一个包含定义,另一个包含 CSV 格式的数据。
| 归档时间: |
|
| 查看次数: |
25639 次 |
| 最近记录: |