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 :

Champ d'une table autoincrémenté


Sujet :

SQL Firebird

  1. #1
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut Champ d'une table autoincrémenté
    Bonjour,

    Je viens de lire Ce tutoriel.
    Mais j'avoue que j'ai éssayé mais je n'arrive pas à créer un champ auotoincrémenté.
    J'ai utilisé ce bout de code sous Interbase pour créer ma table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Create table Scolarite
    (
    CodeSco INTEGER IDENTITY(1,1) NOT NULL,
    Mate Integer not null,
    Montant Numeric(6,0),
    DateSco TimeStamp,
    AnneeSco Varchar(10) not null,
    Constraint PK_Scolarite primary key(CodeSco)
    );
    A l'exécution, voici l'erreur :
    Invalid token.
    Dynamic SQL Error.
    SQL error code = -104.
    Token unknown - line 3, char 17.
    IDENTITY.
    Pouvez-vous m'aider?
    Merci.

  2. #2
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut
    Je me suis trompé, il s'agit d'un code pour sql server.
    J'ai tenter ceci sous interbase à présent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE GENERATOR Ordre TO 1
    il ya une erreur :
    Dynamic SQL Error
    SQL error code = -104
    Token unknown - line 1, char 24
    TO
    Statement: CREATE GENERATOR Ordre TO 1.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 26
    Par défaut
    Salut,

    je vais tenter une réponse, sur un essai que j'ai réalisé semaine passé.

    Comme toi, j'ai créé une table appelant une générateur type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Create table toto (
    num integer,
    nom varchar(50),
    ...)
    ou num doit s'incrémenter automatiquement.

    Ensuite, j'ai créé un générateur pour pouvoir le faire. Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    create generator inc_num
    Enfin pour executer l'incrementation, il m'a fallu crée un trigger, type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    SET TERM !! ;
    CREATE TRIGGER inc_num_auto FOR toto
    BEFORE INSERT AS
    BEGIN
        new.num = gen_id(inc_num, 1);
    END !!
    Ensuite, il ne te reste plus qu'à inserer des lignes en remplissant les valeurs autre que celui du champ qui s'auto incrémente

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO  toto (nom,...) VALUES (myname,...)
    c'est magique ...


    voila, j'espère t'voir aiguillé un peu sur une bonne piste. Cela fonctionne chez mon avec Interbase 6.
    Par contre, mon but est de faire un prog en delphi, mais le trigger ne fonctionne, ou du moins, je n'ai pas trouvé le truc pour le faire fonctionner.

    Bonne chance,

    William

  4. #4
    Membre Expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Par défaut
    Salut

    Si vous souhaitez plus d'info, vous pouvez regardez la FAQ interbase/firebird : http://interbase.developpez.com/faq/

    L'utilisation des générateurs y est notamment détaillée.

    A bientôt,

  5. #5
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut
    Merci pour l'astuce. J'ai pu créer le génarateur et le trigger.
    Mais quand je veux faire une insertion, delphi demande que le champ autoincrémté doit avoir une valeur.
    Pourquoi ?.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Par défaut
    Bonjour

    J'avais un problème semblable

    http://www.developpez.net/forums/sho...d.php?t=150663

  7. #7
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut
    Merci d'avoir partagé ton expérience avec moi.
    Bon courage.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/05/2008, 01h30
  2. afficher tous les champs d'une table
    Par julio84 dans le forum ASP
    Réponses: 8
    Dernier message: 19/01/2005, 10h31
  3. changement de type pour un champ dans une table
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 23/02/2004, 15h26
  4. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53
  5. Récupération des noms de champs d'une table
    Par Battomura dans le forum SQL
    Réponses: 2
    Dernier message: 24/03/2003, 10h00

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