Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

DELETE

Mode de mise au point
DELETE - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Supprime les lignes des tables.

Note

La taille maximale d’une instruction SQL est de 16 Mo.

Syntaxe

[ WITH [RECURSIVE] common_table_expression [, common_table_expression , ...] ] DELETE [ FROM ] { table_name | materialized_view_name } [ { USING } table_name, ... ] [ WHERE condition ]

Paramètres

Clause WITH

Clause facultative qui en spécifie une ou plusieurs common-table-expressions. Voir Clause WITH.

FROM

Le mot-clé FROM est facultatif, sauf si la clause USING est spécifiée. Les instructions delete from event; et delete event; sont des opérations équivalentes qui suppriment toutes les lignes de la table EVENT.

Note

Pour supprimer toutes les lignes d’une table, TRUNCATE la table. TRUNCATE est beaucoup plus efficace que DELETE et ne requiert ni opération VACUUM ni opération ANALYZE. Cependant, sachez que TRUNCATE valide la transaction dans laquelle l’opération est exécutée.

table_name

Table temporaire ou permanente. Seul le propriétaire de la table ou un utilisateur avec le privilège DELETE sur la table peut supprimer des lignes de la table.

Pensez à utiliser la commande TRUNCATE pour les opérations de suppression rapides non qualifiées sur les tables volumineuses ; consultez TRUNCATE.

Note

Après avoir supprimé un grand nombre de lignes d’une table :

  • Exécuter une opération VACUUM sur la table pour récupérer de l’espace de stockage et retrier les lignes.

  • Analysez la table pour mettre à jour les statistiques pour le planificateur de requête.

materialized_view_name

Vue matérialisée. L’instruction DELETE fonctionne sur une vue matérialisée utilisée pour Diffusion de l'ingestion vers une vue matérialisée. Seul le propriétaire de la vue matérialisée ou un utilisateur disposant du privilège DELETE sur la vue matérialisée peut y supprimer des lignes.

Vous ne pouvez pas exécuter DELETE sur une vue matérialisée pour l’ingestion en streaming avec une politique de sécurité au niveau des lignes (RLS) qui ne dispose pas de l’autorisation IGNORE RLS accordée à l’utilisateur. Il existe une exception à cette règle : si RLS IGNORE est accordé à l’utilisateur exécutant DELETE, il s’exécute correctement. Pour plus d’informations, consultez Propriété et gestion des politiques RLS.

USING nom_table, ...

Le mot-clé USING permet d’introduire une liste de tables lorsque des tables supplémentaires sont référencées dans la condition de la clause WHERE. Par exemple, l’instruction suivante supprime toutes les lignes de la table EVENT qui satisfont à la condition de jointure sur les tables EVENT et SALES. La table SALES doit être explicitement nommée dans la liste FROM :

delete from event using sales where event.eventid=sales.eventid;

Si vous répétez le nom de la table cible dans la clause USING, l’opération DELETE exécute une jointure réflexive. Vous pouvez utiliser une sous-requête dans la clause WHERE au lieu de la syntaxe USING comme alternative à l’écriture de la même requête.

WHERE condition

Clause facultative qui limite la suppression de lignes à celles qui correspondent à la condition. Par exemple, la condition peut être une restriction sur une colonne, une condition de jointure ou une condition basée sur le résultat d’une requête. La requête peut faire référence à des tables autres que la cible de la commande DELETE. Par exemple :

delete from t1 where col1 in(select col2 from t2);

Si aucune condition n’est spécifiée, toutes les lignes de la table sont supprimées.

Exemples

Supprimez toutes les lignes de la table CATEGORY :

delete from category;

Supprimez des lignes avec des valeurs CATID comprises entre 0 et 9 de la table CATEGORY :

delete from category where catid between 0 and 9;

Supprimez des lignes de la table LISTING dont les valeurs SELLERID n’existent pas dans la table SALES :

delete from listing where listing.sellerid not in(select sales.sellerid from sales);

Les deux requêtes suivantes suppriment une ligne de la table CATEGORY, en fonction d’une jointure avec la table EVENT et d’une restriction supplémentaire sur la colonne CATID :

delete from category using event where event.catid=category.catid and category.catid=9;
delete from category where catid in (select category.catid from category, event where category.catid=event.catid and category.catid=9);

La requête suivante supprime toutes les lignes de la vue matérialisée mv_cities. Le nom de la vue matérialisée ici est un exemple :

delete from mv_cities;

Rubrique suivante :

DESC DATASHARE

Rubrique précédente :

DECLARE

Sur cette page

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.