在视图中存储来自EXECUTE的查询结果-MySQL

时间:2019-04-10 13:45:16

标签: mysql sql execute

我正在尝试将以下查询的输出存储到视图或临时表中。我知道该视图需要SELECT语句,但是我想知道它是否可以与EXECUTE命令一起使用。

这是我的查询:

SET @por= NULL;
SELECT

CONCAT(GROUP_CONCAT(
DISTINCT
CONCAT('SELECT * FROM ', table_name)
SEPARATOR '\r\nUNION\r\n'
), '\r\nUNION\r\n', 'select * from table1')

INTO
@union_por_tables
FROM
information_schema.tables
WHERE
table_schema = 'schema' AND table_name LIKE '%por%';

PREPARE stmt1 FROM @union_por_tables; 
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1

此查询返回250000行,我想存储它们。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您描述的内容称为实例化视图

据我所知,MySQL不支持实例化视图。您可以通过在实际表中插入数据来模拟它,从而手动维护缓存。

MariaDB通过其称为flexviews的方式实现物化视图。文档在这里:https://mariadb.com/kb/en/library/flexviews/

您可以探索针对特定用例试用MariaDB及其flexviews功能的选项。