管理者はDDLをキャンセルします
ADMIN CANCEL DDL
ステートメントを使用すると、実行中の DDL ジョブをキャンセルできます。 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] ...;
ジョブをキャンセルする操作が失敗した場合は、具体的な理由が表示されます。
注記:
- v6.2.0 より前では、この操作のみが DDL ジョブをキャンセルでき、他のすべての操作や環境変更 (マシンの再起動やクラスターの再起動など) ではこれらのジョブをキャンセルできませんでした。v6.2.0 以降では、
KILL
ステートメントを使用して、進行中の DDL ジョブを強制終了してキャンセルすることもできます。- この操作では、複数の DDL ジョブを同時にキャンセルできます。1 ステートメントを使用して、DDL ジョブの ID
ADMIN SHOW DDL JOBS
取得できます。- キャンセルするジョブが完了している場合、キャンセル操作は失敗します。
MySQL 互換性
このステートメントは、MySQL 構文に対する TiDB 拡張です。