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

Firebird Discussion :

Autoincrement limité à 32767


Sujet :

Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Par défaut Autoincrement limité à 32767
    Bonjour,

    J'ai une table avec un champ autoincrementé de type BigInt mais le trigger n'accepte pas une valeur > 32767.

    comment résoudre ce problème?

    D'avance merci

    Ludo

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    quel problème ?
    quel est le code du trigger ?

  3. #3
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Par défaut
    Voila le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    CREATE TABLE NEW_TABLE1 ( NEW_TABLE1_FLD1 BIGINT NOT NULL);
     
     
    ALTER TABLE NEW_TABLE1 ADD PRIMARY KEY (NEW_TABLE1_FLD1);
     
     
    CREATE TRIGGER BI_NEW_TABLE1_NEW_TABLE1_FLD1 FOR NEW_TABLE1
    ACTIVE BEFORE INSERT
    POSITION 32767
    AS
    DECLARE VARIABLE NEW_VAR BIGINT;
    BEGIN
      IF (NEW.NEW_TABLE1_FLD1 IS NULL) THEN
          NEW.NEW_TABLE1_FLD1 = GEN_ID(NEW_TABLE1_NEW_TABLE1_FLD1_GEN, 1);
    END;
    Mon problème est que je souhaiterai avoir un champ autoincrementé (NEW_TABLE1_FLD1) qui n'est pas limité à 32767
    J'ai utilisé SQL Manager 2008 Lite pour créer la table et le champ auto incrémenté.

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    il faudrait que tu lise un peux la doc
    j'imagine que tu crois que POSITION 32767 veut dire limite à 32767
    hors ce n'est absolument pas le cas

    Firebird permet de déclarer plusieurs triggers pour la même table pour le même événement, POSITION indique l'ordre dans lequel les trigger d'une même table pour un même evenement vont se produire
    donc pour ton trigger, la bonne valeur de POSITION est 0 (zéro)
    un trigger before insert de position 1 s'exécutera après un trigger before insert de position 0

    la limite de ton générateur est la limite d'un bigint soit 2^63 -1

  5. #5
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Par défaut
    Tu as tout à fait raison, j'ai confondu la valeur du générateur et la position du trigger.

    Merci pour ton aide

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

Discussions similaires

  1. Contourner la limite de 32767 éléments d'une combobox ?
    Par samuelsiffert dans le forum IHM
    Réponses: 6
    Dernier message: 11/04/2006, 00h49
  2. [Turbo Pascal] Limite de la mémoire virtuelle
    Par moon tiger dans le forum Turbo Pascal
    Réponses: 12
    Dernier message: 08/02/2003, 22h30
  3. Limiter le déplacement de la souris
    Par el_bouleto dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/11/2002, 23h56
  4. Comment limiter les mouvements du curseur??
    Par scorpiwolf dans le forum C++Builder
    Réponses: 9
    Dernier message: 07/07/2002, 22h09
  5. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31

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