Итак, у меня есть два метода. Метод первый добавляет строку в мою базу данных. Второй метод выбирает и обновляет последние 10 строк таблицы.
Если метод один добавляет новую строку после того, как метод два выберет данные, но перед его обновлением будет ли метод два обновить неправильные 10 строк? Помогут ли здесь транзакции или мне нужно заблокировать таблицы?
function one(){
insert row
}
function two(){
select latest 10 rows
update latest 10 rows
}
// РЕДАКТИРОВАНИЕ //////////////////////////////////////////////// /////////////////////////////////
Я неохотно добавлял свои настоящие методы (это методы codeIgniter), но здесь они
function one(){
insert row
}
function two(){
$this->db->where('status', '1');
$this->db->limit(10);
$query = $this->db->get('rrsf_users');
$this->db->where('status', '1');
$this->db->limit(10);
$this->db->update('rrsf_users', array('status' => '2'));
}
Таким образом, это выглядит как два отдельных запроса, отсюда и проблема «текущих последних 10 строк». Не уверен, что лучшее решение для этого. Блокировать таблицы или циклически обрабатывать каждый индекс, выбранный в запросе, и добавлять его в запрос where?