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 MySQL Discussion :

Formater un identifiant avant insertion dans la base de données


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Points : 15
    Points
    15
    Par défaut Formater un identifiant avant insertion dans la base de données
    Bonjour,
    J'ai cherché dans ce forum et je n'ai pas trouvé un sujet qui traite mon problème, peut être que ça existe déjà.
    Voici mon problème.
    Je veut crée un identifiant à partir de plusieurs informations: les 2 derniers chiffre de l'année en cour, le mois en cours, un numéro d'ordre (qui peut être un séquence) et un texte qui abrège la nature de mon document
    Par exemple:
    pour le 24-05-2013, et pour une commande, je souhaite avoir comme identifiant: CMD-13-05-001,
    pour le 24-05-2013, et pour un Devis, je souhaite avoir comme identifiant:
    DEVIS-13-05-001.
    Je n'arrive pas à trouver une séquence qui pourra me permettre de gerer la dernière partie (gras) de ce code en fassant une concatenation. [CONCAT(SUBSTRING('DEVIS-',CURRENT_DATE, 2, 5), '-', séquence) ]
    Je précise que ces informations sont déjà présentent dans un base de données et que je dois les utiliser pour mettre à jour des nouvelles tables qui doivent respecter le nouveau format.
    Je vous remercie par avaance pour votre réponse.

  2. #2
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Salut,
    Je comprends que c'est un peu plus compliqué d'avoir les sequences dans MySQL (un peu comme dans PostgreSQL ou Oracle). Toutefois, j'ai trouvé un astuce dévelopé ici ( http://www.microshell.com/database/m...#comment-89043 ) et cela m'a aidé à avancer un peu.
    Maitenant, je cherche comment réinitialiser automatiquement mon compteur à zero au debut de chaaque mois.
    Merci et à plus

  3. #3
    Membre à l'essai
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Bonjour;
    Il faut avant chaque nouvelle insertion dans la table, verifier si un identifiant existe ou non:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT MAX(identifiant) 
    FROM latable 
    WHERE identifiant LIKE CONCAT(SUBSTRING('DEVIS-',CURRENT_DATE, 2, 5), '-');
    Puis prendre le resultat retourne par cette requette et y incrémenté par 1 (+1).

Discussions similaires

  1. [MySQL] Recuperer les champs avant insertion dans la base de données.
    Par jmtrivia dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/04/2014, 15h00
  2. Vérifier données avant insertion dans une base de données
    Par massbbc dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/09/2010, 11h08
  3. Controles des champs avant insertion dans la base de donnees avec talend
    Par tchanga dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 16/06/2008, 16h56
  4. Problème format de champs pour insertion dans une base FileMaker
    Par guiguikawa dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/03/2007, 22h27
  5. Réponses: 1
    Dernier message: 11/09/2006, 10h45

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