Как создать-настроить триггер в mysql?

Есть таблица users(id, login, password, date, time, isOnline, onlite_date, online_time);

при авторизации на сайте, пользователем, запускается js скрипт (status.php) который держит постоянное соединение с сервером c задержкой в 10 секунд.

Скрипт status.php:
$uid = (int)$_GET["uid"];
sleep(10);
$query = mysql_query("UPDATE users SET isOnline = "1" online_date = CURDATE(), online_time = CURTIME());


нужно создать-добавить триггер в Mysql что бы при выполнении UPDATE users он перебрал всех пользователей в таблице, и изменил строку IsOneline в ноль если пользователь не обновлял свой статус больше N минут
  • Вопрос задан
  • 2470 просмотров
Решения вопроса 1
syschel
@syschel
freelance/python/django/backend
Вы базу убьёте. При наплыве пользователей и их активности, у вас очередь будет из сотен "триггеров" на обновление всех пользователей. По вешайте лучше на крон пересчёт каждые N минут.

Добавлю, по вашей логике. Триггер запускается когда идёт обновление таблицы юзера. И вы хотите сразу же запустить массовое обновление всех юзеров. Что вызовет по каждому юзеру новую волну обновлений. Вечный цикл.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы