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

SQL Procédural MySQL Discussion :

update une fois puis insert


Sujet :

SQL Procédural MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 23
    Points : 11
    Points
    11
    Par défaut update une fois puis insert
    Bonjour,

    J'ai un soucis MySQL

    Je dois faire un SELECT qui me retourne une ou plusieurs lignes.

    Si il n'y a qu'une seule ligne, je dois faire un UPDATE d'un champ d'une autre table.

    Si il y en a plusieurs, je dois faire un UPDATE pour le premier résultat et un INSERT pour les autres en dupliquant la ligne de l'UPDATE.


    Pour l'instant, si je fais :

    UPDATE ...
    SET ... = (
    SELECT ...
    )

    ca marche dans le cas où il y a un résultat sinon "Subquery returns more than 1 row"


    Si je fais un

    INSERT
    ... ON DUPLICATE KEY UPDATE

    ça ne peut pas marcher car ça n'intervient pas sur la clé primaire


    Quelqu'un a-t-il une solution ?


    Merci d'avance

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    Soit tu fais une procédure SQL qui prévoit les différents cas et agit en conséquence, soit tu le fais dans le langage de programmation de l'application qui doit faire ce boulot.
    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 !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Merci,

    Je ne peux pas passer par le langage de programmation. Tout doit être fait en MySQL

    J'ai dejà pensé faire un if (count...

    Mais je ne vois pas comment faire

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/02/2014, 18h24
  2. [Disque Dur] SATA via USB reconnu une fois puis non détecté
    Par vermine dans le forum Périphériques
    Réponses: 4
    Dernier message: 21/09/2012, 08h13
  3. Réponses: 8
    Dernier message: 26/01/2008, 23h00
  4. insertion dans une table puis update dans une autre table
    Par uptoditime dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/10/2007, 18h08
  5. Réponses: 30
    Dernier message: 29/05/2006, 19h16

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