событие mysql для изменения значения поля при достижении даты - PullRequest
0 голосов
/ 10 марта 2012

Я пытаюсь сделать следующее: у меня есть table1, который содержит user_id, group_id (int с установленным значением по умолчанию) и expire_date.Also table2, который между другими имеет поле user_group_id, которое служит внешним ключом для group_id table1.

Когда дата достигнута, я бы хотел изменить значения group_id и user_group_id на значения по умолчанию.

К сожалению, похоже, я не могу обойти это, так как я действительно новичок вmysql.

Table1 будет содержать не более 500 строк. Вероятно, событие не будет использоваться для обновления более 4-5 строк за цикл.

Приветствуются автоматизированные альтернативные решения.mysql 5.2.7 php 5.3.8 CentOs 6

Заранее благодарен за любые ответы!

Ответы [ 2 ]

0 голосов
/ 11 марта 2012

Сделал это с событием.

CREATE EVENT event_name2
  ON SCHEDULE 
   EVERY 24 HOUR
   DO
    UPDATE test.employees
    SET `group`=DEFAULT
    WHERE expire_date <= now( )

Сначала я подумал использовать триггеры, но они возникают только тогда, когда что-то меняется в базе данных, чего не было здесь.

0 голосов
/ 10 марта 2012

Вам нужно утверждение типа

update table1 set group_id=<default> where expire_date() > now();

Вы можете запустить этот запрос на обновление из cronjob, из триггера или из события mysql (http://dev.mysql.com/doc/refman/5.1/en/events.html)

...