管理者によるDDLのキャンセル
ADMIN CANCEL DDL
文は実行中のDDLジョブをキャンセルします。3 job_id
ADMIN SHOW DDL JOBS
実行することで確認できます。
ADMIN CANCEL DDL
文を使用すると、コミットされているもののまだ実行が完了していないDDLジョブをキャンセルすることもできます。キャンセル後、DDLジョブを実行するSQL文はERROR 8214 (HY000): Cancelled DDL job
エラーを返します。すでに完了しているDDLジョブをキャンセルした場合は、 RESULT
列にDDL Job:90 not found
エラーが表示されます。これは、ジョブがDDL待機キューから削除されたことを示します。
概要
- AdminCancelDDLStmt
- NumList
AdminCancelDDLStmt ::=
'ADMIN' 'CANCEL' 'DDL' 'JOBS' NumList
NumList ::=
Int64Num ( ',' Int64Num )*
例
現在実行中の DDL ジョブをキャンセルし、対応するジョブが正常にキャンセルされたかどうかを返すには、 ADMIN CANCEL DDL JOBS
使用します。
ADMIN CANCEL DDL JOBS job_id [, job_id] ...;
ジョブをキャンセルする操作が失敗した場合、具体的な理由が表示されます。
注記:
- バージョン6.2.0より前では、この操作のみがDDLジョブをキャンセルでき、他のすべての操作や環境変更(マシンの再起動やクラスタの再起動など)ではこれらのジョブをキャンセルできませんでした。バージョン6.2.0以降では、
KILL
ステートメントを使用して実行中のDDLジョブを強制終了することでキャンセルできるようになりました。- この操作では、複数のDDLジョブを同時にキャンセルできます。1 ステートメントを使用して、
ADMIN SHOW DDL JOBS
ジョブのIDを取得できます。- キャンセルするジョブが完了している場合、キャンセル操作は失敗します。
MySQLの互換性
このステートメントは、MySQL 構文に対する TiDB 拡張です。