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

integer avec trigger et 2 generateurs


Sujet :

SQL Firebird

  1. #1
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut integer avec trigger et 2 generateurs
    Bonjour,

    J'ai une table avec un champ INTEGER je souhaite stocker dedans un numéro unique selon le type d'un autre champ.

    J'ai pour cela créé le TRIGGER
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    BEGIN
      IF (NEW.ID_INVOICE IS NULL) THEN
      BEGIN
        /* IF ESTIMATE TAKE ID FROM ESTIMATE GENERATOR */
        IF ((NEW.INVOICE_TYPE = 1) OR (NEW.INVOICE_TYPE > 100)) THEN
          NEW.ID_INVOICE = GEN_ID(MY_ESTIMATE_ID_INVOICE_GEN, 1);
        ELSE
          NEW.ID_INVOICE = GEN_ID(MY_INVOICE_ID_INVOICE_GEN, 1);      
      END
    END
    Afin d'avoir un numéro unique créé par deux générateurs selon si c'est une facture ou un devis.

    Mais en application je me heurte à une contrainte qui m'empêche d'avoir des numéros en doublons.

    J'ai un champ id en clé primaire, et je souhaiterais appliquer cette méthode sur mon champ id_invoice.

    Est-ce que cela vous semble possible, si oui pouvez-vous m'orienter dans la bonne direction.

    Merci d'avance.
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Bonjour

    Je ne comprends pas

    Citation Envoyé par ouiouioui Voir le message
    Afin d'avoir un numéro unique créé par deux générateurs selon si c'est une facture ou un devis.

    Mais en application je me heurte à une contrainte qui m'empêche d'avoir des numéros en doublons.
    Pourquoi utiliser deux générateurs si tu veux une valeur unique ?
    Utilise un seul générateur ! Ou alors je n'ai saisi ton problème.

    @+ Claudius.

  3. #3
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut
    Je veux un champs integer unique selon le type d'enregistrement, j'ai viré le trigger du champ id_invoice et j'ai modifier le trigger du champs id pour rajouter mon code ci-dessus et mon champs id_invoice accepte les doublons maintenant.

    merci.
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  4. #4
    Membre confirmé Avatar de JustMe
    Inscrit en
    Juillet 2002
    Messages
    479
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 479
    Points : 593
    Points
    593
    Par défaut
    Un déclencheur est utilisé pour avoir un entier unique pourquoi avoir recours à deux déclencheurs.
    J'en connais des amis qui utilisent un seul déclencheur pour tous les identifiants de leurs entités.
    <On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison> **Poincaré**

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

Discussions similaires

  1. insertion avec trigger!
    Par JauB dans le forum Développement
    Réponses: 3
    Dernier message: 14/06/2006, 10h43
  2. Division de 2 integer avec resultat dans un decimal
    Par Labienus dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/03/2006, 12h46
  3. Insert avec select sur table avec Trigger d'insertion
    Par bran_noz dans le forum Développement
    Réponses: 5
    Dernier message: 23/12/2005, 14h38
  4. [JDBC]Probleme avec trigger Oracle
    Par aurel89 dans le forum JDBC
    Réponses: 2
    Dernier message: 02/08/2005, 11h53
  5. [9i] problème avec trigger after logon
    Par Michael# dans le forum Oracle
    Réponses: 2
    Dernier message: 17/03/2005, 12h14

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