2016-11-07 4 views
-1

У меня есть шесть таблиц базы данных, которые вместе представляют проекты и процессы для каждого проекта. Также пользователям назначается каждый процесс. Вот таблицы:MySQL - В еженедельном триггере обновления, который копирует таблицы

User 
Project 
Process 
Proc_leader 
Proc_checker 
Proc_staff 

Я хочу, чтобы система копировала и хранила скопированные таблицы в базе данных каждое воскресенье. Какой-то триггер, который будет копировать все данные каждое воскресенье, а затем позволит пользователю просматривать сохраненные записи на основе даты. Например:

У меня есть 1 проект с 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 и не располагаю достаточными знаниями, чтобы применить это на практике. Поэтому я ищу любую помощь. Любые идеи, как я могу это достичь? Спасибо

+1

[tag: mysql] и [tag: sql-server] - два совершенно разных продукта. Редко, что * оба тега должны применяться к одному вопросу. Какой продукт вы используете? –

+0

@Damien_The_Unbeliever Я использую mysql, спасибо за уведомление. Я удалил тэг sql-сервера –

+0

Но оставил его в заголовке – Strawberry

ответ

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 согласно вашему требованию.

1

Триггеры вам не помогут, вам нужно SQL Agent Job.

Вам необходимо запланировать работу за каждое воскресенье.

До этого, создать запрос, чтобы скопировать таблицу в новую таблицу, как показано ниже

select * into NewTable from ExistingTable 

Как вам требуется новое имя таблицы должны быть динамичными, т.е. с датой, вы, возможно, потребуется создать dynamic sql.

+0

К сожалению, OP теперь пояснил, что это вопрос [tag: mysql]. –