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 :

Colonne auto incrémentée


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 22
    Points
    22
    Par défaut Colonne auto incrémentée
    Bonjour à tous,

    j'ai une table déjà toute faite, à laquelle je souhaite ajouter une colonne auto incrémentée, mais je souhaite que cette colonne ne s’incrémente que lorsqu'un champs bien précis de ma table prend la valeur 'true'. (comme un compteur).

    mais je ne sais vraiment pas comment m'y prendre ou si c'est faisable .

    Merci Pour vos éclairages.

  2. #2
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut,

    Quel est ton SGBD ?
    S'il le permet, utilises une séquence que tu incrémentes dans un trigger.

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  3. #3
    J1
    J1 est déconnecté
    Membre averti Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Points : 335
    Points
    335
    Par défaut
    Bonjour,

    si je résume, cela signifie que dans ta table, la valeur d'une de tes colonnes (celle de ton auto-incrément) dépend en partie de la valeur d'une autre colonne (celle de ton booléen).
    Ca me semble gênant en terme de normalisation. La conséquence étant que si un jour ton booléen change de valeur, tu seras obligée de mettre également à jour ton auto-incrément.
    Peux-tu nous expliquer pourquoi tu as besoin de mettre en place un mécanisme de ce type ?

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 22
    Points
    22
    Par défaut raison
    Bonjour, c'est exactement ca!
    Je travaille sur une application j2ee avec sql server comme sgbd.

    Donc j'ai ma première table table_A et je crée un nouvelle table table_B
    et je souhaite effectuer une relation one-to-one entre table_B et table_A
    sauf que j'ai des erreurs que je ne comprends pas et que je n'arrive pas à résoudre du coup j'ai pris tous mes champs (table_B) que j'ai rajouté à ma table_A mais j'aurais besoin d'un champs auto incrément que j'utiliserais comme un compteur!

    Sinon j'ai une entre idée crée
    - je crée quand même mon champs compteur (int) (avec par défaut o ou null).
    -une variable max dans mon appli qui récupèrera la valeur du champs compteur.
    - et a chaque fois que je fais passer mon booléen_A à 'true', j'incrémente max de 1 que j'update en base.
    je vais essayer ca, sinon j'ai une autre question:

    est ce que ma valeur par défaut du champs compteur pourra être 'null' ? ??comme ça pour ma première valeur je pourrais faire max= null+1.

    Merci de prendre le temps de me lire!

  5. #5
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Citation Envoyé par jmsofy Voir le message
    Donc j'ai ma première table table_A et je crée un nouvelle table table_B
    et je souhaite effectuer une relation one-to-one entre table_B et table_A
    sauf que j'ai des erreurs que je ne comprends pas et que je n'arrive pas à résoudre du coup j'ai pris tous mes champs (table_B) que j'ai rajouté à ma table_A mais j'aurais besoin d'un champs auto incrément que j'utiliserais comme un compteur!
    Bonjour,

    Je pense que la démarche n'est pas bonne à la base. Quelles erreurs avez-vous eu ?

    Cordialement,

    Arkhena
    A bove ante, ab asino retro, a stulto undique caveto

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Points : 22
    Points
    22
    Par défaut erreur
    Bonjour,

    Voici l'erreur qui revient, que je passe de relation one-to-many à one-to-one
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: gp.entity.AEntity.b[gp.entity.BEntity]
    sachant que AEntity represente la table table_A
    et BEntity la table_B

    Merci

  7. #7
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Je pense que la démarche n'est pas bonne à la base
    c'est le monde moderne :
    on n'adapte plus les outils aux méthodes, mais les méthodes aux outils...

    jmsofy, expliquez un peu plus ces tables, que contiennent-elles, pourquoi sont-elles partitionnées...
    Je ne comprend pas bien l'interet du compteur que vous voulez mettre en place

    Vous pourriez créer une vue pour regrouper ces deux tables, et ajouter le compteur...

  8. #8
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par jmsofy Voir le message
    est ce que ma valeur par défaut du champs compteur pourra être 'null' ? ??comme ça pour ma première valeur je pourrais faire max= null+1.

    Non : NULL + 1 = NULL

  9. #9
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Citation Envoyé par jmsofy Voir le message
    Voici l'erreur qui revient, que je passe de relation one-to-many à one-to-one
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: gp.entity.AEntity.b[gp.entity.BEntity]
    Bonjour,

    Vous êtes sur un forum lié au langage SQL... Merci de fournir le message d'erreur de votre SGBD avec la requête SQL qui pose problème.

    Cordialement,

    Arkhena
    A bove ante, ab asino retro, a stulto undique caveto

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

Discussions similaires

  1. [MySQL] Réinitialisation colonne auto-incrémentée
    Par Guttata dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 19/05/2009, 14h03
  2. Réponses: 15
    Dernier message: 10/02/2009, 10h01
  3. vider la colonne auto-incrémenté d'un champs vide
    Par phy4me dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 05/04/2008, 04h45
  4. Oracle 10g - Définir une colonne auto-incrémentée
    Par david71 dans le forum Oracle
    Réponses: 2
    Dernier message: 14/01/2008, 16h40
  5. [Oracle 10 g] Colonne auto-incrémentée
    Par Thomad dans le forum Oracle
    Réponses: 11
    Dernier message: 14/09/2007, 13h11

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