MySQL 获取 View 转储

标签 mysql sql database

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

SELECT * FROM view INTO OUTFILE /path/to/file.tmp;

然后将其从该文件加载到表中:

LOAD DATA INFILE /path/to/file.tmp INTO TABLE table;

然后使用mysqldump创建该表的转储(实际上是多个表,前两个步骤重复多次,然后运行mysqldump)。

有更好的方法吗?理想情况下,我希望无需将任何内容保存到文件中即可执行此操作。是否可以仅使用一条语句从 View 中创建数据的 SQL 转储?

最佳答案

不适用于 mysqldump。 mysqldump 仅导出 View 定义,而不导出数据。

您可以使用 INSERT ... SELECT 逐步减少您所拥有的资源。句法。也就是说,从 View 直接插入到新表中。然后 mysqldump 那个。不需要 file.tmp 文件。类似的东西

INSERT INTO table SELECT * FROM view;

另一种可能性是编写一个程序来代替 mysqldump 来导出 View ,就好像它是一个表一样。该程序可以检查 View 结构并以与 mysqldump 兼容的格式导出数据。

关于MySQL 获取 View 转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8215817/

相关文章:

java - SQL连接性能

MySQL将数据从表行复制到不同表中的另一个表行

PHP 运行查询的时间比 MySQL 客户端长 90 倍

php - MySQL 选择名字和名字如 x 和 x 的用户

javascript - 如何使 node.js mysql 连接池在启动时可用

mysql - Group by with sum 不返回正确的结果

sql - “ALTER DATABASE 语句必须是批处理中的唯一语句”

java - Netbeans SQL 编辑器问题

mysql - SQL查询根据另一列中的唯一元素查找列中的公共(public)ID

MYSql:get ROWS 哪一个比较好? (Where IN ()) 或 foreach