MySQL - 自动化视图更新

时间:2015-06-12 11:36:30

标签: mysql

我想知道是否可以创建一个SQL函数来自动更新我的View并在我的数据库中添加新表。

我的数据库由多个表(相同的数据结构)组成,并命名为follow" MM_DD",现在我想创建一个加入所有这些数据的VIEW(非常简单,请参阅下面的查询)但是我希望自动化这个过程,所以每次添加新表时,视图都会更新。

CREATE OR REPLACE VIEW `viewTable` AS
select *,
        md5(CONCAT(`columnA`,`columnB`)) AS myPK_id
  from `05_06`
 union all
select  *,
        md5(CONCAT(`columnA`,`columnB`)) AS myPK_id
  from `05_08`

  ect...

我现在正在做的是每次添加表时都使用PHP。它循环遍历表并创建/更新视图。

select * from information_schema.tables WHERE table_name LIKE '%05%'

现在我有一个表名数组 - >创建我的查询字符串 - >替换视图......

这可以在SQL中执行此操作吗? 如果是这样,那么正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

编写存储过程以重建视图。您需要使用MySQL内部调用的内容和#34;准备好的语句"所以你可以使用字符串操作。

您仍然会使用SELECT ... FROM information_schema.tables查询来驱动此存储过程。

一旦你开始工作,你可以将它嵌入到mySQL事件中,并安排自动运行它。例如,你可以在深夜的同一时间运行它。

或者,您可以在创建其中一个表后立即调用存储过程。