如何创建一个存储视图数据的表 - 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的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 之 视图触发器存储过程函数事物与数据库锁

MySQL 之 视图触发器存储过程函数事物与数据库锁

MySQL 之 视图触发器存储过程函数事物与数据库锁

MySQL第43天------视图SQL注入问题事务存储过程

MySQL 之视图触发器存储过程函数事物数据库锁数据库备份

MySQL 之视图触发器存储过程函数事物数据库锁数据库备份