если я использую транзакции, заблокирует ли она таблицы и не позволит ли она другим пользователям вносить какие-либо изменения?
псевдокод:
begin transaction
issue a select query
issue a update query
end transaction
так, между этими двумя запросамивозможно ли внести какие-либо изменения с помощью другого оператора обновления или чего-то, что было сделано с другой страницы?
или с момента начала транзакции будут заблокированы используемые таблицы?
Что такоеразница между транзакцией и таблицей блокировок?будет ли транзакция неявно блокировать таблицу?
Редактировать: Это то, что я хочу сделать:
{
// Check Table2 (posted messages)
// If is_approved is FALSE for a given msg_id
{
// Set is_approved to TRUE
// Update Table1 (member details) post_count_month++
// and post_count_lifetime++
}
// Else
{
// NOOP
}
}
Выше обновление может быть сделано несколькими пользователями одновременновремя.Кроме того, один пользователь (администратор) может удалить сообщение (как принятое, так и не принятое сообщение).Таким образом, для удаления необходимо увеличить количество месяцев и времени жизни пользователя, отправившего это сообщение (удаляемое), а затем удалить сообщение.
Это две ситуации, с которыми я сталкиваюсь.