2016-06-28 3 views
-2

У меня есть таблица mysql с несколькими столбцами: id, время начала (временная метка), время окончания (временная метка), статус.Mysql Триггеры для временных меток

Я хотел бы добавить триггеры:

  • автоматически установить метку в поле «STARTTIME», когда новая запись создается
  • автоматически устанавливает временную метку в поле «Конечное время», когда соответствующее строка «статус» установлен в положение «ЗАКРЫТО»

Новичок в MySQL, у меня есть трудности, объявляющие эти триггеры ...

Спасибо за йо ур помощь,

+1

Для 1. вы можете использовать значение по умолчанию. Для 2 вам нужен спусковой крючок –

+1

Какие трудности? Если вы не делитесь своим кодом и не объясняете свои точные проблемы, это не вопрос, а бесплатный запрос кода ;-) –

+0

относительно вашего первого вопроса, пожалуйста, проверьте это: http://stackoverflow.com/questions/10720486/date -timestamp-to-record-when-a-record-was-added-to-the-table – sagivmal

ответ

0

Вот полное решение: (для Друпала использования)

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); 

, если это может помочь.

Смежные вопросы