Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL获取视图转储_Mysql_Sql_Database - Fatal编程技术网

MySQL获取视图转储

MySQL获取视图转储,mysql,sql,database,Mysql,Sql,Database,我有一个返回大量数据的视图。现在,视图加载到如下文件中: SELECT * FROM view INTO OUTFILE /path/to/file.tmp; 然后将其从该文件加载到表中: LOAD DATA INFILE /path/to/file.tmp INTO TABLE table; 然后使用mysqldump创建该表的转储(实际上是多个表,前两个步骤重复多次,然后运行mysqldump) 有更好的方法吗?理想情况下,我希望这样做而不必将任何内容保存到文件中。是否可以只使用一条语句

我有一个返回大量数据的视图。现在,视图加载到如下文件中:

SELECT * FROM view INTO OUTFILE /path/to/file.tmp;
然后将其从该文件加载到表中:

LOAD DATA INFILE /path/to/file.tmp INTO TABLE table;
然后使用mysqldump创建该表的转储(实际上是多个表,前两个步骤重复多次,然后运行mysqldump)

有更好的方法吗?理想情况下,我希望这样做而不必将任何内容保存到文件中。是否可以只使用一条语句从视图创建数据的sql转储

INSERT INTO table (col1, col2, col3...)
    SELECT col1, col2, col3... FROM view

应该做到这一点。

不要使用mysqldump。mysqldump只导出视图定义,而不是数据

通过使用语法,您可以一步一步地减少所得到的内容。也就是说,直接从视图插入到新表中。那我就把它扔了。不需要file.tmp文件。差不多

INSERT INTO table SELECT * FROM view;
另一种可能是编写一个程序,用来代替mysqldump导出视图,就像导出表一样。该程序可以检查视图结构,并以与mysqldump兼容的格式导出数据