2016-11-07 1 views
-1

Ich habe 6 Datenbanktabellen, die alle zusammen vorhanden Projekte und Prozesse sind jedem Projekt zugeordnet. Jedem Prozess sind auch Benutzer zugeordnet. Hier sind die Tabellen:MySQL - Bei wöchentlicher Aktualisierung Auslöser, der Tabellen kopiert

User 
Project 
Process 
Proc_leader 
Proc_checker 
Proc_staff 

Was ich will ist, dass System kopieren und speichern kopierte Tabellen in der Datenbank jeden Sonntag. Eine Art Trigger, der jeden Sonntag alle Daten kopiert und dann dem Benutzer ermöglicht, gespeicherte Datensätze basierend auf dem Datum anzuzeigen. Zum Beispiel:

Ich habe 1 Projekt mit 1 Prozess. Und 3 Benutzer, die als Prozessleiter, Prozessprüfer und Prozessmitarbeiter eingesetzt werden.

Wenn es um Sonntag-System kommen Tabellen kopieren soll und den Namen kopiert Tabellen mit

User06/11/16 
Project06/11/16 
Process06/11/16 
Proc_leader06/11/16 
Proc_checker06/11/16 
Proc_staff06/11/16 

Oder so etwas zu erstellen. Dann sollten Benutzer in der Lage seine View History-Taste drücken und das System so etwas wie dies zeigt:

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

Und es sollte aus diesen Tabellendaten anzuzeigen.

Ich bin nicht so erfahren in SQL und habe nicht genug Kenntnisse, um dies in die Praxis umzusetzen. Also ich suche nach Hilfe. Irgendwelche Ideen wie kann ich das erreichen? Danke

+1

[tag: mysql] und [tag: sql-server] sind zwei völlig verschiedene Produkte. Es ist selten, dass * beide * -Tags auf eine einzelne Frage angewendet werden sollten. Welches Produkt verwenden Sie? –

+0

@Damien_The_Unbeliever ich benutze mysql, danke für die Nachricht. Ich entfernte sql-server Tag –

+0

Aber ließ es im Titel – Strawberry

Antwort

1

Sie müssen einen Cron-Job schreiben. mit den folgenden Schritten

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. 

Planen Sie den Cron-Job gemäß Ihrer Anforderung.

1

Trigger werden Ihnen nicht dabei helfen, was Sie brauchen, ist SQL Agent Job.

Sie müssen den Job für jeden Sonntag planen.

Davor Abfrage erstellen Sie Ihre Tabelle in eine neue Tabelle zu kopieren, wie unter

select * into NewTable from ExistingTable 

Wie Sie den neuen Tabellennamen erfordern dynamische das heißt mit Datum sein, können Sie dynamic sql erstellen müssen.

+0

Leider hat OP jetzt geklärt, dass dies eine [tag: mysql] Frage ist. –

Verwandte Themen