-2

私は MySQL が初めてで、それについてもっと学びたいと思っています。現時点では理解しにくい myseql doc を読んでいます。


説明していただけますか、これらは本当ですか、それとも間違っていますか?

1 - MySQL では、既に実行されたクエリの更新または削除を元に戻す方法はありません。たとえば、過去 24 時間以内に 1900 件のクエリがありました。元に戻すことはできません。

2 - MySQL で現在のトランザクションをロールバックすることのみが可能です。

3 - トランザクションが終了すると、セーブポイントは破棄されます。つまり、今日の午前 10 時にセーブポイントを作成することはできません。

4 - セーブポイントとロールバックは現在のトランザクション内でのみ有効であり、コミットが完了すると終了します。

質問:

1 - 現在のトランザクションのみをロールバックできる場合、ロールバックまたはトランザクションのポイントは何ですか?

トランザクションが間違っている場合、なぜそれを実行するのですか?


編集:

次のようなセーブポイントを作成しました。

start transaction;
savepoint behnam;
commit;

次に、更新クエリと削除クエリをいくつか実行しました。次に、そのセーブポイントにロールバックしようとしました:

rollback to savepoint behnam

そして私は得る:

#1305 - SAVEPOINT behnam does not exist
4

1 に答える 1

0
  1. データが挿入されたときにタイムスタンプを保存している場合は、クエリを起動して過去 24 時間を削除できます。しかし、それらを元に戻すことはできません。

  2. はい、場合によっては可能です。ロールバックとコミットを参照してください

  3. セーブポイントは上書きされたときにのみ削除されると思うので、前のセーブポイントと同じセーブポイントでトランザクションを実行すると、最後のセーブポイントが上書きされ、戻ることができなくなります

  4. はい、現在のトランザクションがコミットされた後、すべてのセーブポイントが削除されます。この セーブポイントを参照

于 2013-04-16T11:06:25.780 に答える