insert, update в один запрос

ништяк
Дата: 19.01.2013 21:33:44
Помогите, пожалуйста, советом, как решить такой вопрос: у меня в проекте раз в сутки надо пробегаться по таблице пользователей и считать для каждого, сколько денег надо с него снять за пользование сервисом за сегодняшний день, результат записать в таблицу логов. Это один запрос - INSERT. Вместе с этим, рассчитанную дневную стоимость мне надо отнять от текущего баланса пользователя, т.е. сделать UPDATE.
Проект делаю с прицелом на высокую нагрузку и думаю, над следующим вопросом - как мне сделать, чтобы не приходилось расчитывать стоимость два раза, а только один раз, а потом использовать ее в двух разных запросах?
miksoft
Дата: 19.01.2013 22:10:20
а что мешает использовать во втором запросе запись, созданную первым?
ништяк
Дата: 19.01.2013 22:32:50
Да, я вначале пытался мудрить, начал процедуру писать с курсорами, а потом так и сделал:
            UPDATE {{user}} u
            SET balance = balance - (SELECT total_row
                FROM {{project_log}}
                WHERE user_id = u.id
                ORDER BY `date` DESC
                LIMIT 1
            )
            WHERE u.balance > 0 AND u.active = 1
miksoft
Дата: 19.01.2013 23:12:02
ништяк,

откройте для себя функцию LAST_INSERT_ID()