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

Schéma Discussion :

Déterminer le nombre d'insert et d'update si pas d'erreur


Sujet :

Schéma

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 813
    Points : 4 278
    Points
    4 278
    Billets dans le blog
    1
    Par défaut Déterminer le nombre d'insert et d'update si pas d'erreur
    Bonjour,

    je reçois des données que 1) j'analyse et 2) je stocke bdd (par insert ou par update) si l'analyse ne détecte aucune erreur sur les données.

    Le souci est d'évaluer le nombre d'insert et d'update qui seraient effectués si pas d'erreur lorsqu'une erreur est détectée. Il s'agit d'un problème de conception.

    A savoir que la bdd est constituée de plusieurs tables, que pour les peupler je fais en général une requête INSERT INTO ON DUPLICATE KEY UPDATE ou un simple INSERT lorsque un UPDATE n'est pas envisageable.

    Aujourd'hui la conception est la suivante :
    Lecture des données
    analyse des données->$error
    if (!$error)
       peupler la bdd
    
    Au cas où cela est à gérer au niveau du MCD, voici le MCD Looping :
    Nom : mcdx2150.png
Affichages : 41
Taille : 145,0 Ko

    Quelle conception me proposez-vous ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 813
    Points : 4 278
    Points
    4 278
    Billets dans le blog
    1
    Par défaut
    Pensant que c'est trop difficile à faire (si c'est faisable), j'ai jeté l'éponge.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    16 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 16 677
    Points : 33 723
    Points
    33 723
    Billets dans le blog
    14
    Par défaut
    Si tu utilises MySQL/MariaDB, tu peux essayer mysl_affected_rows mais je ne sais pas si c'est fiable avec un insert on duplicate key update.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 813
    Points : 4 278
    Points
    4 278
    Billets dans le blog
    1
    Par défaut
    Donc, ton idée se situe au niveau du SQL et pas du MCD...A savoir que pour l'exécution des requêtes, j'utilise l'excellente classe de rawsrc (PDOPlusPlus-GitHub ou (ça commence à dater) : PDOPlusPlus-DVP et qu'on y retrouve l'équivalent de mysql_affected_rows et que ça fonctionne pour les requêtes du style insert on duplicate key update (j'y avais pensé). Cela dit, il faudrait trop modifier mon code pour utiliser cette fonctionnalité, donc j'abandonne.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    16 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 16 677
    Points : 33 723
    Points
    33 723
    Billets dans le blog
    14
    Par défaut
    Le MCD, comme son nom l'indique, est un modèle de données donc il n'y est pas question de traitement.
    Ce que tu pourrais avoir dans ton MCD, c'est l'enregistrement des événements survenus sur la BDD, dont le nombre de lignes ajoutées ou modifiées tel jour à telle heure. Mais si tu n'as pas ce besoin...
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 813
    Points : 4 278
    Points
    4 278
    Billets dans le blog
    1
    Par défaut
    En fait, je fournis déjà cette information (nombre d'insert et d'update) (justement en utilisant la fonctionnalité mentionnée au post #4) mais uniquement quand l'utilisateur fournit des nouvelles données (mais aucune mémorisation), donc ce n'est pas présent dans le MCD.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

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

Discussions similaires

  1. Déterminer dans un trigger si on fait un insert ou un update
    Par pascal-od dans le forum SQL Procédural
    Réponses: 17
    Dernier message: 21/03/2016, 18h07
  2. Réponses: 1
    Dernier message: 16/10/2014, 11h19
  3. Probleme simple de debutant avec INSERT TO et UPDATE
    Par Tom_Cruise dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/08/2005, 08h15
  4. grand nombre d'insert
    Par whilecoyote dans le forum Oracle
    Réponses: 11
    Dernier message: 20/07/2005, 13h02
  5. [SYBASE] nombre de ligne impactée par UPDATE
    Par metheorn dans le forum Sybase
    Réponses: 3
    Dernier message: 14/05/2004, 16h47

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