29 mai 2007

DELETE sur des tables multiples en SQL sous Oracle

Comment faire pour supprimer des enregistrements figurant dans des tables distinctes? Avec DELETE, nous ne pouvons normalement pas le faire. Mais nous pouvons contourner ce problème en faisant appel aux sous-requêtes.

Exemple sous Oracle :

delete from table1 where ID in (
  select table1.ID from
  table1, table2
  where table1.cle1 = table2.cle2
  and (condition à rajouter)
);

Posté par fatihaelh à 13:58 - SQL - Commentaires [2] - Permalien [#]

Commentaires

    Je ne comprends pas : avec l'instruction "delete from table1", seuls la table "table1" sera affectée par la commande "delete"...

    Posté par gazza8, 04 juin 2007
  • Oui effectivement seule la table1 sera affectée, j'ai choisi un mauvais terme. En fait, ce qui est intéressant ici c'est qu'on peut supprimer des enregistrements en faisant des jointures sur de multiples tables.

    Désolée pour le mauvais choix des termes

    Posté par fatiha, 04 juin 2007

Poster un commentaire