2020-08-10 13:10:48 +00:00
---
2020-10-26 10:29:30 +00:00
toc_priority: 46
2020-08-10 13:10:48 +00:00
toc_title: KILL
---
# KILL {#kill-statements}
Существует два вида операторов KILL: KILL QUERY и KILL MUTATION
## KILL QUERY {#kill-query}
``` sql
KILL QUERY [ON CLUSTER cluster]
WHERE < where expression to SELECT FROM system . processes query >
[SYNC|ASYNC|TEST]
[FORMAT format]
```
Пытается принудительно остановить исполняющиеся в данный момент запросы.
Запросы для принудительной остановки выбираются из таблицы system.processes с помощью условия, указанного в секции `WHERE` запроса `KILL` .
Примеры
``` sql
-- Принудительно останавливает все запросы с указанным query_id:
KILL QUERY WHERE query_id='2-857d-4a57-9ee0-327da5d60a90'
-- Синхронно останавливает все запросы пользователя 'username':
KILL QUERY WHERE user='username' SYNC
```
Readonly-пользователи могут останавливать только свои запросы.
По умолчанию используется асинхронный вариант запроса (`ASYNC`), который не дожидается подтверждения остановки запросов.
Синхронный вариант (`SYNC`) ожидает остановки всех запросов и построчно выводит информацию о процессах по ходу их остановки.
Ответ содержит колонку `kill_status` , которая может принимать следующие значения:
1. ‘ finished’ - запрос был успешно остановлен;
2. ‘ waiting’ - запросу отправлен сигнал завершения, ожидается е г о остановка;
3. остальные значения описывают причину невозможности остановки запроса.
Тестовый вариант запроса (`TEST`) только проверяет права пользователя и выводит список запросов для остановки.
## KILL MUTATION {#kill-mutation}
``` sql
KILL MUTATION [ON CLUSTER cluster]
WHERE < where expression to SELECT FROM system . mutations query >
[TEST]
[FORMAT format]
```
2020-08-25 15:38:36 +00:00
Пытается остановить выполняющиеся в данные момент [мутации ](alter/index.md#mutations ). Мутации для остановки выбираются из таблицы [`system.mutations` ](../../operations/system-tables/mutations.md#system_tables-mutations ) с помощью условия, указанного в секции `WHERE` запроса `KILL` .
2020-08-10 13:10:48 +00:00
Тестовый вариант запроса (`TEST`) только проверяет права пользователя и выводит список запросов для остановки.
Примеры:
``` sql
-- Останавливает все мутации одной таблицы:
KILL MUTATION WHERE database = 'default' AND table = 'table'
-- Останавливает конкретную мутацию:
KILL MUTATION WHERE database = 'default' AND table = 'table' AND mutation_id = 'mutation_3.txt'
```
Запрос полезен в случаях, когда мутация не может выполниться до конца (например, если функция в запросе мутации бросает исключение на данных таблицы).
Данные, уже изменённые мутацией, остаются в таблице (отката на старую версию данных не происходит).