

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# CANCEL
<a name="r_CANCEL"></a>

Cancela uma consulta de banco de dados que está sendo executada no momento.

O comando CANCEL requer o ID do processo ou o ID da sessão da consulta que está sendo executada e exibe uma mensagem de confirmação para confirmar que a consulta foi cancelada.

## Privilégios obrigatórios
<a name="r_CANCEL-privileges"></a>

A seguir estão os privilégios obrigatórios para CANCEL:
+ Superusuário que cancele sua própria consulta
+ Superusuário que cancele a consulta de um usuário
+ Usuários com o privilégio CANCEL que cancelem a consulta de um usuário
+ Usuário que cancele sua própria consulta

## Sintaxe
<a name="r_CANCEL-synopsis"></a>

```
CANCEL process_id [ 'message' ]
```

## Parâmetros
<a name="r_CANCEL-parameters"></a>

 *process\$1id*   
Para cancelar uma consulta em execução em um cluster do Amazon Redshift, use o `pid` (ID do processo) de [STV\$1RECENTS](r_STV_RECENTS.md) que corresponde à consulta a ser cancelada.  
Para cancelar uma consulta em execução em um grupo de trabalho do Amazon Redshift sem servidor, use o `session_id` de [SYS\$1QUERY\$1HISTORY](SYS_QUERY_HISTORY.md) que corresponde à consulta a ser cancelada.

'*mensagem*'   
Mensagem de confirmação opcional exibida quando o cancelamento da consulta é concluído. Se você não especificar uma mensagem, o Amazon Redshift exibirá a mensagem padrão como verificação. Você deve colocar a mensagem entre aspas simples.

## Observações de uso
<a name="r_CANCEL-usage-notes"></a>

Não é possível cancelar uma consulta especificando um *ID de consulta*; é necessário especificar o *ID de processo* (PID) ou o *ID da sessão* da consulta. Somente é possível cancelar consultas atualmente em execução pelo seu usuário. Superusuários podem cancelar todas as consultas.

Se as consultas em várias sessões mantiverem bloqueios na mesma tabela, você poderá usar a função [PG\$1TERMINATE\$1BACKEND](PG_TERMINATE_BACKEND.md) para encerrar uma das sessões. Isso força todas as transações em execução na sessão encerrada a liberar todos os bloqueios e reverter a transação. Consulte a tabela de sistema [STV\$1LOCKS](r_STV_LOCKS.md) para exibir os bloqueios atuais. 

Depois de alguns eventos internos, o Amazon Redshift pode reiniciar uma sessão ativa e atribuir um novo PID. Se o PID foi alterado, a seguinte mensagem de erro pode aparecer.

```
Session <PID> does not exist. The session PID might have changed. Check the stl_restarted_sessions system table for details.
```

Para encontrar o PID, consulte a tabela de sistema [STL\$1RESTARTED\$1SESSIONS](r_STL_RESTARTED_SESSIONS.md) e o filtro na coluna `oldpid`.

```
select oldpid, newpid from stl_restarted_sessions where oldpid = 1234;
```

## Exemplos
<a name="r_CANCEL-examples"></a>

Para cancelar uma consulta em execução em um cluster do Amazon Redshift, recupere primeiro o ID de processo para a consulta a ser cancelada. Para determinar os IDs de processo para todas as consultas atualmente em execução, digite o seguinte comando: 

```
select pid, starttime, duration,
trim(user_name) as user,
trim (query) as querytxt
from stv_recents
where status = 'Running';

pid |         starttime          | duration |   user   |    querytxt
-----+----------------------------+----------+----------+-----------------
802 | 2008-10-14 09:19:03.550885 |      132 | dwuser | select
venuename from venue where venuestate='FL', where venuecity not in
('Miami' , 'Orlando');
834 | 2008-10-14 08:33:49.473585 |  1250414 | dwuser | select *
from listing;
964 | 2008-10-14 08:30:43.290527 |   326179 | dwuser | select
sellerid from sales where qtysold in (8, 10);
```

Verifique o texto da consulta para determinar qual ID de processo (PID) corresponde à consulta que você deseja cancelar.

Digite o seguinte comando a ser usado com o PID 802 para cancelar a consulta: 

```
cancel 802;
```

A sessão em que a consulta estava sendo executada exibirá a seguinte mensagem: 

```
ERROR:  Query (168) cancelled on user's request
```

onde `168` é o ID de consulta (não o ID de processo usado para cancelar a consulta).

Como alternativa, você pode especificar uma mensagem de confirmação personalizada a ser exibida no lugar da mensagem padrão. Para especificar uma mensagem personalizada, inclua sua mensagem entre aspas simples no final do comando CANCEL: 

```
cancel 802 'Long-running query';
```

A sessão em que a consulta estava sendo executada exibirá a seguinte mensagem: 

```
ERROR:  Long-running query
```