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

Requêtes et SQL. Discussion :

Requête ajout et requête création de table ne donnent pas le même nombre d'enregistrements


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Mars 2014
    Messages : 80
    Points : 61
    Points
    61
    Par défaut Requête ajout et requête création de table ne donnent pas le même nombre d'enregistrements
    Bonjour à tous,

    J'ai une grosse base de données (Sup à 1 000 000 d'enregistrements), j'ai donc décidé de créer une base de données par mois pour éviter de trop ralentir le système principal. A mon avis, je devrai passer à un autre système à partir de l'année prochaine vu la quantité d'informations mais pour le moment cela peut encore aller.

    Pour vider ma table principale, j'utilise une "requête ajout" qui copie dans la base de données adéquate les enregistrements. Pour ce faire, cette deuxième base de données a une table dont la structure est identique à la source. Au moment de l'ajout, j'ai un message d'erreur qui me signale qu'une partie sera supprimée pour violation de la clef primaire. Je ne comprends car normalement l'effet de la clef primaire est déjà présent sur la table source. Il serait donc normal de ne pas avoir ce genre de message. Cela réprésente +/- 1000 enregistrements sur 1 000 000 donc difficile de les identifier...

    Pour comparer les enregistrements et essayer de comprendre le problème, j'ai utilisé la requête "création de table". Celle-ci marche et fait une copie exacte de la table source. J'ai voulu enfin faire une requête de comparaison entre les 2 mais vu le nombre énorme d'enregistrements, la requête tourne, tourne, tourne et après une heure je finis par la couper sans en avoir le résultat.

    La clef primaire sur la table source est double: Date +N° de dossier

    Si quelqu'un a déjà rencontré ce genre de problème...

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Une simple requête de non-concordance sur tes deux tables qui dure des heures ?

    Que fais-tu comme comparaison ? Simplement lister les enregistrements qui sont dans l'une et pas dans l'autre ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Mars 2014
    Messages : 80
    Points : 61
    Points
    61
    Par défaut
    Bonjour Claude,
    Merci pour le temps consacré.

    Oui. Une simple requête...C'est ça que je ne comprends pas bien mais vu que c'est la première fois que je fais une comparaison sur un gros morceau je ne sais pas si c'est normal...

    Je vais encore vérifier une deuxième champ par champ si la table source est bien identique à la table cible mais à première vue oui comme j'ai fait un copié-collé

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    champ par champ

    Je ne comprends pas !

    Tu fais une liaison sur la clé des 2 tables et tu listes l'enregistrement qui s'avère absent dans l'autre table (clé=Null). Point !
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Mars 2014
    Messages : 80
    Points : 61
    Points
    61
    Par défaut
    Quand je dis champ par champ...c'était pour vérifier que la structure est identique. Champ texte pour champ texte, numérique pour numérique.

    Pour l'autre je n'ai pas accès aux données pour le moment ca je ne suis pas au travail mais je pensais avoir déjà fait ce test. Je reviens sur le Forum pour te tenir au courant quand j'ai à nouveau fait ce test....

    Merci

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    c'était pour vérifier que la structure est identique. Champ texte pour champ texte, numérique pour numérique.
    Pas de raison qu'elles soient différentes !

    À +
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  7. #7
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Mars 2014
    Messages : 80
    Points : 61
    Points
    61
    Par défaut
    Bonjour Claude,

    Voilà je viens de retester et me^me problème.

    J'ai testé une requête doublon basée sur le m^me critère que la requête ajout. Là, je vois apparaître les doublons. A ma grande surprise, je ne comprends pas pourquoi ça ne marche pas.

    Pour rappel, double clef sur ma table source --> N° de dossier + Date

    Dans ma requête doublon uniquement basée sur N° de dossier, on peut y voir que le dossier n° 1 peut-être présenté plusieurs fois mais à des dates différentes. Jusque là...assez logique.

    Au moment du lancement de la requête "ajout", on dirait que la requête va en premier lieu travailler sur la première clef primaire et donc ajouter le N° de dossier...ce qui va provoquer une violation de clef et supprimer.


    Est-il possible qu'il n'ajoute pas simultanément sur les 2 clefs ?
    Est-ce qu'il existe une technique particulière quand on travaille avec une requête ajout sur une double clef primaire ?

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Je ne comprends pas trop comment tu t'y prends.

    Si tu prenais d'abord une copie de ta table originale et ensuite supprimer, dans cette copie, ce qui est caduc, atteindrais-tu ton objectif ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  9. #9
    Membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Mars 2014
    Messages : 80
    Points : 61
    Points
    61
    Par défaut
    Euh je ne comprends pas ce que tu ne comprends pas...

    Table source avec 2 clefs: N° de dossier + Date
    Table cible avec 2 clefs: N° de dossier + Date

    Ma requête doublon sur la table source quand j'utilise mes 2 clefs comme critère alors me donne un résultat = 0 ==> logique car le dossier avec le m^me n° de dossier et une date différente n'est pas un doublon.

    Ma requête doublon sur la table source quand j'utilise une seule clef primaire sur le N° de dossier alors me donne un résultat qui n'est pas égal à 0 ==> Il s'agit d'un dossier avec le même N° de dossier mais avec une date différente. Toujours logique jusque maintenant. Lorsque je regarde ce nombre, il correspond au total des enregistrements qui sont supprimés quand je lance ma requête ajout vers la table cible.

    Je pars donc du principe qu'il ajoute dans la table cible en commencant par le N° de dossier et non simultanément N° de dossier + date

    Est-ce que tu comprends mieux ?

    Merci

Discussions similaires

  1. requêtes ajout plusieurs données dans une table
    Par COLOMBAT dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/04/2008, 17h27
  2. [SQL] Requête SQL permettant la création de tables
    Par lanje dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 10/01/2008, 19h08
  3. Arrondis faux sur requêtes analyse croisée et création de table
    Par Banban52 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 28/07/2007, 10h07
  4. Réponses: 7
    Dernier message: 29/03/2007, 15h30
  5. "Requête Ajout" de requêtes
    Par Waluigi dans le forum Access
    Réponses: 3
    Dernier message: 02/06/2006, 13h31

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