Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите с запросом (Update+Insert) / 2 сообщений из 2, страница 1 из 1
17.11.2017, 20:36
    #39555335
Magestiq
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с запросом (Update+Insert)
Привет,
буду благодарен за помощь в составлении запроса

Имеется (упрощенно):

1) Таблица 'deposits'
В неё пишутся депозиты пользователей: id,date,sum,status
Пользователь может иметь несколько активных депозитов (status=1)

2) Есть таблица 'users'
в ней находятся персональные данные, в том числе баланс: 'balance'
balance = остаток + сумма активных депозитов

Задача:
Каждый 1 час начислять $1 на все активные депозиты (это ясно, UPDATE deposits SET sum=sum+1 WHERE status=1)
Затем суммировать активные депозиты каждого юзера и писать их в 'balance' этого же юзера

Вопрос:
Можно ли это сделать средствами SQL?
без использования цикла на php для каждого id (сначала Select, Update, Insert по очереди и т.д.)

Как вообще объединить несколько операций в один SQL-запрос и имеет ли это смысл делать?

Уверен есть готовые решения... задача очень тривиальна для любой партнерской программы

спасиба)
...
Рейтинг: 0 / 0
17.11.2017, 20:48
    #39555342
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с запросом (Update+Insert)
MagestiqМожно ли это сделать средствами SQL?Да.

MagestiqКак вообще объединить несколько операций в один SQL-запрос
1) Написать процедуру (см. тут ), в которой выполняются все эти действия. Собсно два UPDATE - сперва депозитов, потом баланса.
2) Создать задание (см. тут ), которое выполняется ежечасно, и задать в нём запуск созданной процедуры. Не забыть убедиться, что планировщик MySQL-сервера запущен.

И, собственно, всё...PHP тут не нужен от слова "вообще".
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите с запросом (Update+Insert) / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]