> ## Documentation Index
> Fetch the complete documentation index at: https://cockroachlabs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# CANCEL JOB

export const InternalLink = ({version, path = "", children, ...props}) => {
  let detectedVersion = version || "stable";
  if (typeof window !== 'undefined' && !version) {
    const match = window.location.pathname.match(/\/docs\/([^/]+)/);
    if (match) {
      detectedVersion = match[1];
    }
  }
  const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
  return <a href={`/docs/${detectedVersion}/${normalizedPath}`} {...props}>
      {children}
    </a>;
};

The `CANCEL JOB` <InternalLink path="sql-statements">statement</InternalLink> lets you stop long-running jobs, which include:

* <InternalLink path="import-into">`IMPORT`</InternalLink> jobs
* <InternalLink path="backup">`BACKUP`</InternalLink> and <InternalLink path="restore">`RESTORE`</InternalLink> jobs
* <InternalLink path="create-statistics">User-created table statistics</InternalLink> jobs
* <InternalLink path="cost-based-optimizer#table-statistics">Automatic table statistics</InternalLink> jobs
* <InternalLink path="create-changefeed">Changefeeds</InternalLink>
* <InternalLink path="manage-a-backup-schedule">Scheduled backup</InternalLink> jobs
* <InternalLink path="online-schema-changes">Schema change</InternalLink> jobs (see [Known limitations](#known-limitations) for exceptions)

<a id="cost-based-optimizer-kl" />

## Known limitations

* To avoid transaction states that cannot properly <InternalLink path="rollback-transaction">roll back</InternalLink>, the following statements cannot be cancelled with <InternalLink path="cancel-job">`CANCEL JOB`</InternalLink>:

  * `DROP` statements (e.g., <InternalLink path="drop-table">`DROP TABLE`</InternalLink>).
  * `ALTER ... RENAME` statements (e.g., <InternalLink path="alter-table#rename-to">`ALTER TABLE ... RENAME TO`</InternalLink>).
  * <InternalLink path="create-table-as">`CREATE TABLE ... AS`</InternalLink> statements.
  * <InternalLink path="alter-type">`ALTER TYPE`</InternalLink> statements, except for those that drop values.

* When an Enterprise <InternalLink path="restore">`RESTORE`</InternalLink> is canceled, partially restored data is properly cleaned up. This can have a minor, temporary impact on cluster performance.

## Required privileges

To cancel a job, the user must be a member of the `admin` role or must have the <InternalLink path="create-user#create-a-user-that-can-pause-resume-and-cancel-non-admin-jobs">`CONTROLJOB`</InternalLink> <InternalLink path="security-reference/authorization">role option</InternalLink> set. Non-admin users cannot cancel admin users' jobs.

For changefeeds, users with the <InternalLink path="create-changefeed#required-privileges">`CHANGEFEED`</InternalLink> privilege on a set of tables can cancel changefeed jobs running on those tables.

## Synopsis

<img src="https://mintcdn.com/cockroachlabs/Nqtj0HvOrM_ugxgN/images/sql-diagrams/v26.2/cancel_job.svg?fit=max&auto=format&n=Nqtj0HvOrM_ugxgN&q=85&s=dcd691a69b98c8eef03fd47000e9db04" alt="cancel_job syntax diagram" style={{maxWidth: "100%", overflowX: "auto"}} width="465" height="125" data-path="images/sql-diagrams/v26.2/cancel_job.svg" />

### Cancel all jobs by type

<img src="https://mintcdn.com/cockroachlabs/Nqtj0HvOrM_ugxgN/images/sql-diagrams/v26.2/cancel_all_jobs.svg?fit=max&auto=format&n=Nqtj0HvOrM_ugxgN&q=85&s=3b12735d896a13d29080e9e1fee68b66" alt="cancel_all_jobs syntax diagram" style={{maxWidth: "100%", overflowX: "auto"}} width="443" height="169" data-path="images/sql-diagrams/v26.2/cancel_all_jobs.svg" />

## Parameters

| Parameter                                   | Description                                                                                                                                                                                                                                                                                                                               |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `job_id`                                    | The ID of the job you want to cancel, which can be found with <InternalLink path="show-jobs">`SHOW JOBS`</InternalLink>.                                                                                                                                                                                                                  |
| `select_stmt`                               | A <InternalLink path="selection-queries">selection query</InternalLink> that returns `job_id`(s) to cancel.                                                                                                                                                                                                                               |
| `for_schedules_clause`                      | The schedule you want to cancel jobs for. You can cancel jobs for a specific schedule (`FOR SCHEDULE id`) or cancel jobs for multiple schedules by nesting a <InternalLink path="select-clause">`SELECT` clause</InternalLink> in the statement (`FOR SCHEDULES <select_clause>`). See the [examples](#cancel-jobs-for-a-schedule) below. |
| `BACKUP`, `CHANGEFEED`, `RESTORE`, `IMPORT` | The job type to cancel.                                                                                                                                                                                                                                                                                                                   |

## Examples

### Cancel a single job

```sql theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
> SHOW JOBS;
```

```
+----------------+---------+------------------------------------------------+...
|       id       |  type   |               description                      |...
+----------------+---------+------------------------------------------------+...
| 27536791415282 | RESTORE | RESTORE db.* FROM 'azure-blob://backup/db/tbl' |...
+----------------+---------+------------------------------------------------+...
```

```sql theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
> CANCEL JOB 27536791415282;
```

### Cancel multiple jobs

To cancel multiple jobs, nest a <InternalLink path="select-clause">`SELECT` clause</InternalLink> that retrieves `job_id`(s) inside the `CANCEL JOBS` statement:

```sql theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
> CANCEL JOBS (WITH x AS (SHOW JOBS) SELECT job_id FROM x
      WHERE user_name = 'maxroach');
```

All jobs created by `maxroach` will be cancelled.

### Cancel by job type

To cancel all jobs by the type of job, use the `CANCEL ALL {job} JOBS` statement. You can cancel all `BACKUP`, `RESTORE`, `CHANGEFEED`, `IMPORT` jobs using this statement, for example:

```sql theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
CANCEL ALL BACKUP JOBS;
```

### Cancel automatic table statistics jobs

Canceling an automatic table statistics job is not useful since the system will automatically restart the job immediately. To permanently disable automatic table statistics jobs, disable the `sql.stats.automatic_collection.enabled` <InternalLink path="cluster-settings">cluster setting</InternalLink>:

```sql theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
> SET CLUSTER SETTING sql.stats.automatic_collection.enabled = false;
```

### Cancel jobs for a schedule

To cancel jobs for a specific <InternalLink path="create-schedule-for-backup">backup schedule</InternalLink>, use the schedule's `id`:

```sql theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
> CANCEL JOBS FOR SCHEDULE 590204387299262465;
```

```
CANCEL JOBS FOR SCHEDULES 1
```

You can also CANCEL multiple schedules by nesting a <InternalLink path="select-clause">`SELECT` clause</InternalLink> that retrieves `id`(s) inside the `CANCEL JOBS` statement:

```sql theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
> CANCEL JOBS FOR SCHEDULES WITH x AS (SHOW SCHEDULES) SELECT id FROM x WHERE label = 'test_schedule';
```

```
CANCEL JOBS FOR SCHEDULES 2
```

## See also

* <InternalLink path="show-jobs">`SHOW JOBS`</InternalLink>
* <InternalLink path="backup">`BACKUP`</InternalLink>
* <InternalLink path="restore">`RESTORE`</InternalLink>
* <InternalLink path="import-into">`IMPORT INTO`</InternalLink>
* <InternalLink path="create-changefeed">`CREATE CHANGEFEED`</InternalLink>
