如何创建一个存储视图数据的表 - MySQL
Posted
技术标签:
【中文标题】如何创建一个存储视图数据的表 - MySQL【英文标题】:How to create a table that stores data from a view - MySQL 【发布时间】:2015-12-17 20:22:05 【问题描述】:mysql 数据库 (5.5)
我创建了一个视图,每次刷新时都会生成一行数据:
curtime()、跨度、curSPM
15:19:38, 5, 454.2000
这里有两个目标:
-
此视图每 4 分钟刷新一次 -
将该视图中的数据存储到收集记录的永久表中(以便能够查看历史数据)。
基本上,我正在尝试捕获和存储“实时”数据。我尝试创建一个过程来运行查询 - 我可以创建表 - 但我无法获取表来存储数据。关于我可能缺少哪些步骤的任何想法?
更新问题:
这里是我的程序(或我正在处理的程序) -
DELIMITER //
CREATE PROCEDURE pullSPMM2
BEGIN ()
Insert INTO testTable (SELECT * FROM Machine2SPM);
END //
DELIMITER;
一些事情 - 我知道它还不完全正确 - (这不是我的原创 - 我从头开始)。
我不确定我首先需要输入什么参数
其次,一旦我有了将最新行插入表的过程 - 我知道我需要安排一个活动每 5 分钟运行一次。像这样的:
CREATE EVENT myevent
ON SCHEDULE EVERY 5 MINUTE
DO
#procedure to insert row into table;
【问题讨论】:
如果您希望对其进行审核,请附上您的存储过程。 我很抱歉 - 很快就会解决。谢谢! @RichardSt-Cyr - 这是否提供了更好的信息? 【参考方案1】:想出了一种更有效(也更简单)的不同方法。我把它复杂化了(有时很容易做到)。
CREATE EVENT CollectM2SPM ON SCHEDULE EVERY 5 Minute ON COMPLETION NOT PRESERVE ENABLE DO Insert INTO testTable (SELECT * FROM M2SPM);
我还需要运行它来启动它:SET GLOBAL event_scheduler = ON;
希望其他人也觉得这很有帮助! :)
谢谢!
【讨论】:
以上是关于如何创建一个存储视图数据的表 - MySQL的主要内容,如果未能解决你的问题,请参考以下文章