保存点标识符回滚[工作]到[保存点]标识符RELEASE SAVEPOINT标识符
InnoDB
は,sqlステトメント保存点
、保存点回滚
、RELEASE SAVEPOINT
のほか,回滚
のオプションの工作
キワドをサポトしています。
保存点
ステトメントは,标识符
の名前を持。現在のトランザクションに同じ名前を持つセーブポイントが含まれている場合,古いセーブポイントは削除され,新しいセーブポイントが設定されます。
保存点回滚
ステートメントは,トランザクションを終了することなく,そのトランザクションを指定されたセーブポイントにロールバックします。セーブポイントが設定されたあとに現在のトランザクションが行に対して行なった変更はロールバックで元に戻されますが,InnoDB
は,セしません。(新しく挿入された行の場合,ロック情報は,その行に格納されているトランザクションIDによって伝達されます。ロックが個別にメモリに格納されるわけではありません。この場合,行ロックは撤销で解放されます)指定されたセーブポイントよりあとで設定されたセーブポイントは削除されます。
保存点回滚
ステートメントが次のエラーを返した場合は,指定された名前を持つセーブポイントが存在しないことを示しています。
错误1305(42000):保存点标识符不存在
RELEASE SAVEPOINT
ステートメントは,指定されたセーブポイントを現在のトランザクションの一連のセーブポイントから削除します。コミットまたはロルバックは発生しません。そのセブポになります。
提交
,またはセブポ回滚
を実行した場合は,現在のトランザクションのすべてのセントが削除されます。
ストアドファンクションが呼び出されるか,またはトリガーがアクティブ化されると,新しいセーブポイントレベルが作成されます。以前のレベルにあるセーブポイントは使用できなくなるため,新しいレベルのセーブポイントとは競合しません。関数またはトリガーが終了すると,その関数またはトリガーによって作成されたセーブポイントはすべて解放され,以前のセーブポイントレベルがリストアされます。