2013-04-16 3 views
-2

Я новичок в MySQL и хотел бы узнать больше об этом. Я читаю через myseql doc, который на данный момент трудно понять.Несколько вопросов о транзакциях MySQL


Не могли бы вы объяснить, являются ли они истинными или ложными?

- В MySQL нет возможности отменить обновление или удаление уже выполненных запросов. Например, за последние 24 часа было запрошено 1900 запросов. Ничто не может быть отменено.

- ТОЛЬКО можно отменить текущую транзакцию в MySQL.

- Savepoints уничтожаются после завершения транзакции. Другими словами, сегодня невозможно создать точки сохранения на 10 утра.

- Сохранение и откат действуют только в рамках текущей транзакции, и после совершения фиксации они умирают.

Вопрос:

- Какова точка отката или сделки, если это только возможно откатить текущую транзакцию?

Если сделка неверна, зачем ее запускать?


EDIT:

Я создал точку сохранения, как это:

start transaction; 
savepoint behnam; 
commit; 

Затем провел несколько обновлять и удалять запросы. Затем попытался откатиться к этой точке сохранения:

rollback to savepoint behnam 

и я получаю:

#1305 - SAVEPOINT behnam does not exist 

ответ

0
  1. Если вы храните метку времени, когда данные вставляются, то вы можете запустить запрос, чтобы удалить последние 24 часа , Но вы не можете их отменить.

  2. Да в некоторых случаях это возможно. любезно см rollback and commit

  3. Я думаю, что точки сохранение удаляется только когда они будут переписаны так, если и сделать сделку с тем же точкой сохранения, как и предыдущей, он перепишет последнюю точку сохранения, и поэтому вы не можете вернуться назад

  4. Да все точки сохранения удаляются после совершения текущей транзакции. см. этот savepoints

Смежные вопросы