2012-03-27 10 views
0

zurückgibt Ich brauche ein Ereignis, das das aktuelle Datum von einem bestimmten Datum subtrahiert.Wie erstellt man ein Ereignis, das herausfindet, ob das Datum größer als ein Monat ist und den Wert

Allerdings arbeite ich mit einem Kriterium von 1 Monat, wenn das Ergebnis der Subtraktion größer als 1 Monate ist, dann aktualisieren Sie eine Tabelle mit dem Wert '1'. Also wäre es Current_date- receipt_date, und wenn das länger als 1 Monate ist, dann aktualisiere Flag auf '1' sonst '0'.

Ich möchte, dass es jede Minute läuft.

Hier ist mein Code so weit:

CREATE EVENT myevent3 
ON SCHEDULE EVERY '1' MINUTE 
DO 
UPDATE lms.receipt 
SET delinquent = (
    CASE WHEN DATE_ADD(receipt_date, INTERVAL 1 MONTH) < NOW() 
    THEN 1 
    ELSE 0 
    END 
); 
+0

Was nicht funktioniert, ist damit? –

+0

Die Delinquent-Spalte in der Quittungstabelle gibt weder Null noch 1 zurück und ich weiß nicht warum – dames

+1

Haben Sie den Scheduler mit 'set global event_scheduler = on' aktiviert? –

Antwort

1

Ihre Events machen auszuführen, benötigen Sie den Event-Scheduler mit set global event_scheduler=on zu ermöglichen. Dadurch wird der Ereignisplaner bis zum nächsten Neustart des Servers aktiviert.

Wenn Sie möchten, dass es durch Neustarten des Servers persistent bleibt, müssen Sie diese Zeile zu Ihrer my.cnf im Abschnitt [mysqld] hinzufügen;

event_scheduler=ON 

(Referenzdokumentation here)

+0

THis ist golden danke – dames

+0

Könnten Sie einen Blick auf diese Frage bitte ich brauche wirklich etwas Hilfe http: // stackoverflow .com/questions/10088948/mysql-event-running-jahresberechnungen – dames

0

Wenn Sie ein Ergebnis schreiben, können Sie nicht erwarten, dass Sie ein Ergebnis zur gleichen Zeit zurückkehren können.
Sie besteht verwenden cronjob von zwei Abfragen, die jede Minute laufen die Veranstaltung

  1. erste ID auszuwählen, die angepasst (Ausgabe eine Datei zum Beispiel) zu ersetzen.
  2. markieren Sie den Eintrag auf 0 (oder 1, abhängig von Ihrer Berechnung)
+0

Ok, aber ich habe keine Kenntnis von Cron-Jobs und ich benutze mysql, könnten Sie mich bitte führen – dames

+0

verwenden Sie Fenster? Wenn nicht, hier ist die grundlegende http://en.wikipedia.org/wiki/Cron, http://www.gnu.org/software/mcron/manual/html_node/Invoking-cron-or-crond.html#Invoking -cron-or-cron – ajreal

+0

Ja, ich benutze Windows – dames

Verwandte Themen