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 * From * Where ?!


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 117
    Points : 54
    Points
    54
    Par défaut Delete * From * Where ?!
    Salut a tous!!
    Je suis confronté à un petit problème avec sql...
    Alors voila, j'ai une base de données contenant plusieurs tables avec dans chacune d'elles (sauf dans une mais est ce vraiment important??), l'attribut ID_DEC (clé primaire de la table DEC et clé étrangère des autres tables)...Je voudrais pouvoir supprimer tous les enregistrements ou l'attribut ID_DEC est égal a 48 sans passer par l'indexation des clés étrangères "en cascade" (car dans d'autres cas je veux pouvoir supprimer juste un enregistrement sans supprimer tout ce qui est rattaché... )
    Donc j'ai bien sur essayé à l'intuition et d'après quelques recherches d'écrire des requetes mais bien evidemment sans succès...
    DELETE * FROM * WHERE ID_DEC = 48;
    DELETE * WHERE ID_DEC = 48;
    DELETE FROM * WHERE ID_DEC = 48;
    ...
    Enfin bref rien ne passe!! (ça serait trop beau!!)
    Si vous avez des éléments de réponse n'hésitez pas!!!

    Merci d'avance.

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour,

    La syntaxe est DELETE FROM NomTable WHERE ...

    car dans d'autres cas je veux pouvoir supprimer juste un enregistrement sans supprimer tout ce qui est rattaché
    Tu ne pourras pas supprimer ces enregistrements s'ils ont des enregistrements qui en dépendent.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 117
    Points : 54
    Points
    54
    Par défaut
    Et c'est pas possible de dire qu'on veut faire le delete dans toutes les tables??

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Pour faire ce que tu veux, pour moi tu n'as que la solution de faire autant de delete que de table dans lesquelles tu veux supprimer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Delete from tableFille1 WHERE ID_DEC = 48;
    Delete from tableFille2 WHERE ID_DEC = 48;
    Delete from tableFille3 WHERE ID_DEC = 48;
    Delete from tableFille4 WHERE ID_DEC = 48;
    ...
    Delete from DEC WHERE ID_DEC = 48;
    Et si tu as peur d'oublier une table fille tu peux toujours faire un select des tables systèmes pour les connaître. Exemple pour certains SGBD notamment SQL Server:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select table_name from information_schema.columns where column_name='ID_DEC'
    A+
    Soazig

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 117
    Points : 54
    Points
    54
    Par défaut
    Ok merci je vais faire comme ça alors...et je reflechirais plus tard a cette histoire de "ON DELETE CASCADE" pour les clefs etrangeres...la j'ai la flemme!!c'est bientot les vacances!!

    Merci.
    Bonne fete a tous!!

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

Discussions similaires

  1. DELETE FROM . . . WHERE EXISTS
    Par tfc3146 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 30/08/2011, 12h33
  2. Réponses: 2
    Dernier message: 08/03/2011, 09h26
  3. delete from table1 where rien dans table2
    Par tofito dans le forum Débuter
    Réponses: 3
    Dernier message: 03/12/2009, 17h14
  4. Requete: Delete from T where Not In
    Par jamesleouf dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/05/2008, 09h15
  5. DELETE FROM t where t.id IN (SELECT id FROM t....)
    Par davcha dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/01/2006, 15h19

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