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 :

Effacer une ligne pour archiver


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 169
    Points : 113
    Points
    113
    Par défaut Effacer une ligne pour archiver
    Bonjour à tous !

    Je fais appel à vos talent en SQL pour me venir en aide. Je vais essayer d'expliquer clairement le problème.

    J'ai une table IN_CRE et une autre ARCHI_INCRE.

    Elles comportent les même données. De temps en temps, la table IN_CRE est vidée pour remplir les mêmes lignes dans ARCHI_INCRE, pour archiver.

    par ailleurs, j'ai une table d'anomalies ANO_INCRE qui recense des anomalies trouvées sur les lignes de IN_CRE.

    Le problème :
    Au moment du processus d'archivage, il faut donc copier la ligne dans ARCHI_INCRE, puis l'effacer de IN_CRE. Mais les lignes de IN_CRE qui comportent une ou des anomalies, impossible de les supprimer de IN_CRE car il existe des enregistrements fils dans la table ANO_INCRE.

    Comment contourner ce problème, sans effacer les fils pour les remetre ensuite, ce qui lourd je trouve ?

    J'espère avoir été assez clair, et n'hesitez pas à écrire des commentaires.

    Merci infiniement, et je vous souhaite une bonne journée.

    Laurent

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Points : 639
    Points
    639
    Par défaut
    D'un point de vue conceptuel, il n'y a tout simplement pas de solution !
    Vouloir supprimer les pères tout en gardant les fils créerait une incohérence des données, et la clé étrangère de ta table fille ANO_INCRE est justement là pour garantir cette cohérence en t'empêchant de faire cette... connerie

    D'un point de vue pratique, il est cependant concevable dans des cas comme le tien de supprimer cette clé étrangère afin de satisfaire le besoin fonctionnel, c'est ce qu'on appelle la dénormalisation. Mais attention, c'est la porte ouverte à tous les dangers, et parfois c'est le début de la fin.

    A toi de peser le pour et le contre, et de dénormaliser à bon escient.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 169
    Points : 113
    Points
    113
    Par défaut
    Merci pour ta réponse claire.

    C'est donc un point délicat de discution.

    Je te souhaite une très bonne journée.

Discussions similaires

  1. [MySQL] Probleme pour effacer une ligne d'un tableau
    Par manutchao78 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 25/06/2010, 19h00
  2. Probléme pour effacer une ligne dans ma combobox
    Par scorpionrun dans le forum VB.NET
    Réponses: 2
    Dernier message: 20/08/2009, 12h18
  3. [MySQL] ajouté une case pour effacé une ligne
    Par cobra91 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 31/05/2007, 10h00
  4. [FSO] Effacer une ligne dans un fichier
    Par Johnbob dans le forum ASP
    Réponses: 4
    Dernier message: 30/05/2007, 17h23
  5. Effacer une ligne dans la table nat
    Par vbcasimir dans le forum Sécurité
    Réponses: 2
    Dernier message: 11/01/2004, 01h15

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