IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Delete sur plusieurs tables


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Février 2005
    Messages : 86
    Points : 79
    Points
    79
    Par défaut Delete sur plusieurs tables
    Bonjour,
    J'ai une table Facture qui contient l'identifiant d'une facture ainsi que la date. J'ai une autre table FactureDétails qui contient les frais avec les montants et la quantité correspondant à une facture.
    Je dois pouvoir supprimer une facture donc je souhaite effacer la ligne correspondant à la facture dans la table Facture ainsi que les lignes de FactureDétails dont le numéro de facture est égal à l'identifiant de la facture.
    Est-ce possible de faire cela en une seule requête ?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 102
    Points : 28 403
    Points
    28 403
    Par défaut
    Pas par requête, mais lors de la conception de ta base, avec une contrainte DELETE CASCADE ou un trigger ON DELETE de la table maître (Facture).

    Vois comment ton SGBD implémente ces solutions...

  3. #3
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    En SQL normalement non.
    (il y a peut-être des éditeurs de SGBD qui se sont amusé à le faire, mais je n'ai jamais utilisé)
    Mais si ta base accepte les contraintes d'intégrité ON DELETE CASCADE (et que toi aussi tu les as implémentées ds ton schéma) ''DELETER'' une facture ''DELETERA'' ttes ses dépendances par la même occasion.
    Ca, c'est la solution simple.
    Sinon c'est à toi de le faire par des DELETE successifs. Il est préférable de ts les regrouper ds une transaction, comme ça si ça foire : ROLLBACK, et ta base est intacte.
    Ou tu as la solution d'écrire 1 proc. stockée, déclenchée par le DELETE de ta table facture, qui va DELETER les enr. dépendants ds tes autres tables.

    A +

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Février 2005
    Messages : 86
    Points : 79
    Points
    79
    Par défaut
    Merci pour les réponses.
    En fait j'utilise une Base de Données Access et je ne connais pas trop donc je ne sais pas si ON DELETE CASCADE fonctionne avec. Comment puis-je le savoir ? Si c'est le cas, que dois-je faire pour que ça marche ?
    Sinon, comment on fait les transactions ?

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 102
    Points : 28 403
    Points
    28 403
    Par défaut
    Dans ACCESS, le ON DELETE CASCADE est géré dans la définition des relations.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Février 2005
    Messages : 86
    Points : 79
    Points
    79
    Par défaut
    ok merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème delete sur plusieurs tables
    Par soubre dans le forum Hibernate
    Réponses: 4
    Dernier message: 19/06/2008, 17h16
  2. DELETE sur plusieurs tables
    Par kazuo0 dans le forum Requêtes
    Réponses: 5
    Dernier message: 21/12/2007, 18h24
  3. Delete sur plusieurs tables
    Par Megoy dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/05/2007, 10h41
  4. [MSDE] Delete sur plusieurs tables ?
    Par hardballer dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/05/2006, 10h13
  5. delete sur plusieurs tables
    Par drinkmilk dans le forum Oracle
    Réponses: 11
    Dernier message: 22/03/2006, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo