MySQL - 在每周更新触发器上复制表

时间:2016-11-07 04:33:20

标签: mysql triggers eventtrigger

我有6个数据库表,它们共同呈现项目和流程分配给每个项目。用户也被分配到每个进程。以下是表格:

User
Project
Process
Proc_leader
Proc_checker
Proc_staff

我想要的是每周日在数据库中进行系统复制和存储复制的表。某种触发器会在每个星期日复制所有数据,然后允许用户根据日期查看已保存的记录。例如:

我有一个项目有1个进程。并指派3名用户作为流程负责人,流程检查员和流程人员处理。

当涉及到星期日时,系统应复制表并创建名称为

的复制表
User06/11/16
Project06/11/16
Process06/11/16
Proc_leader06/11/16
Proc_checker06/11/16
Proc_staff06/11/16

或类似的东西。然后用户应该能够按View History按钮,系统将显示如下内容:

Show Records for 23/10/16
Show Records for 30/10/16
Show Records for 06/11/16

它应该显示该表中的数据。

我对sql没有那么有经验,并且没有足够的知识将其付诸实践。所以我正在寻求任何帮助。任何想法我怎样才能做到这一点?感谢

2 个答案:

答案 0 :(得分:1)

触发器无法帮助您,您需要的是SQL Agent Job

您需要安排每个星期天的工作。

在此之前,创建查询以将表格复制到新表格,如下所示

select * into NewTable from ExistingTable

由于您需要新的表格名称是动态的,即日期,您可能需要创建dynamic sql

答案 1 :(得分:1)

你必须写一个cron作业。以下步骤

1 create table [like][1] master table ( Append date with name) . 

2 Create sql for inserting record form master tables to New tables created at step 1 http://dev.mysql.com/doc/refman/5.7/en/insert-select.html.

根据您的要求安排cron作业。