2016-06-28 3 views
-2

Ich habe eine MySQL-Tabelle mit mehreren Spalten: ID, Startzeit (Zeitstempel), Endzeit (Zeitstempel), Status.Mysql Trigger für Zeitstempel

Ich möchte Trigger hinzuzufügen:

  • automatisch den Zeitstempel auf die ‚Startzeit‘ -Feld gesetzt, wenn ein neuer Eintrag erstellt wird
  • automatisch den Zeitstempel auf die ‚endtime‘ Feld gesetzt, wenn die entsprechende Zeile 'Status' auf "EIN"

Neuling in mysql gesetzt, ich Schwierigkeiten diese Trigger erklärt haben ...

Danke für yo ur helfen, ist

+1

Für 1. können Sie einen Standardwert verwenden. Für 2 benötigen Sie einen Trigger –

+1

Welche Art von Schwierigkeiten? Wenn Sie Ihren Code nicht teilen und Ihre genauen Probleme erklären, ist dies keine Frage, sondern eine kostenlose Code-Anfrage ;-) –

+0

bezüglich Ihrer ersten Frage, überprüfen Sie dies bitte: http://stackoverflow.com/questions/10720486/date -timestamp-to-record-wenn-ein-Datensatz-wurde hinzugefügt-zu-der-Tabelle – sagivmal

Antwort

0

die komplette Lösung: (für Drupal Nutzung)

Trigger 1:

$slqquery = 'CREATE TRIGGER `trigger_name` '; 
    $slqquery .= 'BEFORE INSERT ON `table_name` '; 
    $slqquery .= 'FOR EACH ROW BEGIN SET NEW.starttime=NOW(); END;'; 
    $query = db_query($slqquery); 

Trigger 2:

$slqquery = 'CREATE TRIGGER `trigger_name` '; 
    $slqquery .= 'BEFORE UPDATE ON `table_name` '; 
    $slqquery .= 'FOR EACH ROW BEGIN '; 
    $slqquery .= "IF (!(OLD.column_name <=> NEW.column_name) AND (NEW.column_name <=> 'WHATEVER')) THEN "; 
    $slqquery .= 'SET NEW.endtime=NOW(); '; 
    $slqquery .= 'END IF; END;'; 
    $query = db_query($slqquery); 

wenn es helfen kann.