

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

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

Bricht eine Datenbankabfrage ab, die zurzeit ausgeführt wird.

Der Befehl CANCEL erfordert die Prozess-ID oder Sitzungs-ID der ausgeführten Abfrage und zeigt eine Bestätigungsmeldung an, um zu bestätigen, dass die Abfrage abgebrochen wurde.

## Erforderliche Berechtigungen
<a name="r_CANCEL-privileges"></a>

Für CANCEL sind folgende Berechtigungen erforderlich:
+ Superuser bricht seine eigene Abfrage ab
+ Superuser bricht die Abfrage eines Benutzers ab
+ Benutzer mit der Berechtigung CANCEL bricht die Abfrage eines Benutzers ab
+ Benutzer storniert seine eigene Abfrage

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

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

## Parameters
<a name="r_CANCEL-parameters"></a>

 *process\_id*   
Um eine Abfrage abzubrechen, die in einem Amazon-Redshift-Cluster ausgeführt wird, verwenden Sie die `pid` (Prozess-ID) aus [STV\_RECENTS](r_STV_RECENTS.md), die der Abfrage entspricht, die Sie abbrechen möchten.  
Um eine Abfrage abzubrechen, die in einer Arbeitsgruppe in Amazon Redshift Serverless ausgeführt wird, verwenden Sie die `session_id` aus [SYS\_QUERY\_HISTORY](SYS_QUERY_HISTORY.md), die der Abfrage entspricht, die Sie abbrechen möchten.

'*message*'   
Eine optionale Bestätigungsmeldung, die angezeigt wird, wenn der Abbruch der Abfrage abgeschlossen ist. Wenn Sie keine Meldung angeben, zeigt Amazon Redshift die Standardmeldung als Verifizierung an. Sie müssen die Meldung in einfache Anführungszeichen setzen.

## Nutzungshinweise
<a name="r_CANCEL-usage-notes"></a>

Sie können eine Abfrage nicht durch Angabe einer *Abfrage-ID* abbrechen. Sie müssen die *Prozess-ID* (PID) oder die *Sitzungs-ID* der Abfrage angeben. Sie können nur Aufträge abbrechen, die zurzeit von Ihrem Benutzer ausgeführt werden. Superuser können alle Abfragen abbrechen.

Wenn Abfragen in mehreren Sitzungen dieselbe Tabelle sperren, können Sie die Funktion [PG\_TERMINATE\_BACKEND](PG_TERMINATE_BACKEND.md) verwenden, um eine der Sitzungen zu beenden. Dabei werden alle Transaktionen, die zurzeit in der beendeten Sitzung ausgeführt werden, gezwungen, alle Sperren aufzuheben und für die Transaktionen ein Rollback auszuführen. Führen Sie eine Abfrage für die Systemtabelle [STV\_LOCKS](r_STV_LOCKS.md) aus, um die zurzeit vorhandenen Sperren anzuzeigen. 

Im Anschluss an bestimmte interne Ereignisse startet Amazon Redshift möglicherweise eine aktive Sitzung neu und weist eine neue PID zu. Wenn die PID geändert wurde, erhalten Sie möglicherweise die folgende Fehlermeldung.

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

Um die neue PID zu suchen, führen Sie eine Abfrage für die Systemtabelle [STL\_RESTARTED\_SESSIONS](r_STL_RESTARTED_SESSIONS.md) aus und filtern nach der Tabelle `oldpid`.

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

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

Um eine Abfrage abzubrechen, die aktuell in einem Amazon-Redshift-Cluster ausgeführt wird, rufen Sie zuerst die Prozess-ID für die Abfrage ab, die Sie abbrechen möchten. Geben Sie den folgenden Befehl ein, um den Prozess IDs für alle derzeit laufenden Abfragen zu ermitteln: 

```
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);
```

Überprüfen Sie den Text der Abfrage, um festzustellen, welche Prozess-ID (POD) der Abfrage entspricht, die Sie abbrechen möchten.

Geben Sie den folgenden Befehl ein, um PID 802 zu verwenden und diese Abfrage abzubrechen: 

```
cancel 802;
```

Die Sitzung, in der die Abfrage ausgeführt wurde, zeigt die folgende Meldung an: 

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

`168` ist die Abfrage-ID (nicht die Prozess-ID, die für den Abbruch der Abfrage verwendet wurde).

Alternativ können Sie eine benutzerdefinierte Bestätigungsmeldung angeben, die statt der Standardmeldung angezeigt wird. Um eine benutzerdefinierte Meldung anzugeben, setzen Sie die Meldung am Ende des Befehls CANCEL (ABBRECHEN) in Anführungszeichen: 

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

Die Sitzung, in der die Abfrage ausgeführt wurde, zeigt die folgende Meldung an: 

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