MySQL Schedule

ThomasZTH

Benutzer
Beiträge
5
Hallo Zusammen,

ich habe eine Tabelle wo alle Feiertage in Deutschland bis 2069 eingetragen sind.
Desweiteren habe ich eine Tabelle wo ich Touren für einen Kurierdienst eingetragen habe. In dieser Tabelle sind die Wochentage Mo bis So und Feiertage hinterlegt. Also welche Tour startet an welchen Tagen. Bei der Tabelle Touren gibt es ein Feld Autostart. Wenn bei einer Tour Autostart eingestellt ist soll diese automatisch Starten und in eine Tabelle Abfahrt eingetragen werden. Dies hab ich auch soweit als Event in Mysql Eingestellt und läuft auch.
Mein Frage wäre, wenn jetzt ein Feiertag ist sollen nur die Touren die in der Tabelle Touren als Feiertag definiert sind starten. Das ganze habe ich auch schon mehrfach als Event probiert zu starten. Geht aber nicht. Mein Ansatz für den Event war:

Zuerst Prüfe ich ob Heute ein Feiertag ist:


Select datum From feiertage Where Datum = Date(NOW());

ist dies der Fall soll im Event eine IF Abfrage folgen
IF Feiertag ja dann Mach folgende Abfrage:

Selct touren From Touren Where Feiertag = 1

Wenn nicht dann:
Select touren from Touren Where .....
Der Event soll sekündlich abgefragt werden.
Danke.
Ich hoffe das war halbwegs verständlich für meine erste Frage.
 
Werbung:
Warum so umständlich, und warum sekündlich, und überhaupt ...

Code:
test=*# select * from touren ;
 id |    tag     
----+------------
  1 | 2019-04-23
  2 | 2019-04-24
  3 | 2019-04-25
(3 rows)

test=*# select * from feiertage ;
 id | tag
----+-----
(0 rows)

test=*# select *,case when exists(select id from feiertage where tag = current_date) then 'Feiertag' else 'Normal Tag' end as Tagestyp from touren where tag = current_date;
 id |    tag     |  tagestyp  
----+------------+------------
  2 | 2019-04-24 | Normal Tag
(1 row)

test=*# insert into feiertage values (1, current_date);
INSERT 0 1
test=*# select *,case when exists(select id from feiertage where tag = current_date) then 'Feiertag' else 'Normal Tag' end as Tagestyp from touren where tag = current_date;
 id |    tag     | tagestyp
----+------------+----------
  2 | 2019-04-24 | Feiertag
(1 row)

test=*#
 
Werbung:
Eigentlich arbeiten SQL-Datenbanken nicht mit so regelmäßig wiederkehrenden Triggern, zumindest nicht sekündlich. Da bietet sich eher eine Sicht statt einer Tabelle "Abfahrt" an.
 
Zurück
Oben