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 :

Générer un identifiant unique sur une requete "update"


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Points : 107
    Points
    107
    Par défaut Générer un identifiant unique sur une requete "update"
    Bonjour à tous,

    Je vous expose mon problème :

    j'ai une table remplie de personnes dont j'aimerai remplacer tout les noms et les prénoms par une même chaine de caractaire mais suivit d'un identifiant unique incrémenté ou non.

    donc suposons j'ai M. dupont dupond que j'aimerai rendre en "chaine_IDUNIQUE" "chaine_IDUNIQUE".

    Et donc j'aimerai savoir s'il est possible sur une requête update de générer un identifiant unique pour chaque mise à jour?

    Merci

  2. #2
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    Bonjour

    Citation Envoyé par programaniac Voir le message
    Et donc j'aimerai savoir s'il est possible sur une requête update de générer un identifiant unique pour chaque mise à jour?
    Sans doute, quel est votre sgbd ?
    Je penche, donc je suis

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Points : 107
    Points
    107
    Par défaut
    Oops pardon!

    J'utilise MySql

    merci.

  4. #4
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    Avec mysql, ceci devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SET @rank=0;
    update matable set chaine = concat(chaine,(select @rank:=@rank+1));
    Je penche, donc je suis

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Points : 107
    Points
    107
    Par défaut
    Super j'y vais de ce pas le tester.

    Merci!

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Points : 107
    Points
    107
    Par défaut
    MERCIIIIII
    Ca marche!!!!

    mais dis moi c'est de la programmation en dehors de l'SQL ça, ou tu as appris à faire ca???

    y a des tuto sur tout ca? j'aimerais bien en apprendre d'avantage merci

  7. #7
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    Citation Envoyé par programaniac Voir le message
    mais dis moi c'est de la programmation en dehors de l'SQL ça
    Toute la partie liée à la variable est spécifique à mysql. Le "concat" est également du mysql, en SQL on dit "concatenate".
    En SQL "pur" on aurait par exemple pu passer par "rank over" (voir "fonctions de fenêtrage") pour arriver au résultat mais ces fonctions ne sont pas supportées par mysql.

    Pour info, voilà un excellent tableau réalisé par SQLPro qui vous permettra de bien comprendre pourquoi il est parfois nécessaire de connaitre le SGBD cible pour donner une réponse :
    http://sqlpro.developpez.com/cours/sqlaz/fonctions/

    Et encore il ne s'agit là que des différences entre les fonctions disponibles, les spécificités de chaque SGBD sont bien plus profondes : langages dédiés, comportement différents des objets (dans notre cas, on aurait par exemple parfois pû faire un update sur une vue), etc.

    Citation Envoyé par programaniac Voir le message
    y a des tuto sur tout ca?
    Aucune idée, et surtout je n'ai pas la prétention de bien connaitre les spécificités de mysql, il y a certainement plus simple.
    Un seul tuto valable : votre expérience au fil des années
    Je penche, donc je suis

Discussions similaires

  1. Problème sur une requete d'update
    Par kairi084 dans le forum Requêtes
    Réponses: 5
    Dernier message: 26/02/2014, 15h45
  2. Probleme sur une requete d'update
    Par trinea dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/08/2007, 19h57
  3. []débogage sur une requête dasn visual basic
    Par mcay dans le forum VB 6 et antérieur
    Réponses: 19
    Dernier message: 24/09/2003, 09h59

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