Avatar billede faetter_br Nybegynder
20. februar 2002 - 11:34 Der er 2 kommentarer og
1 løsning

automatisk id i interbase

Hej

Hvordan laver jeg det der svarer til auto_increment (mysql) i InterBase??

Er det ikke noget med noget "generator" og gen_id??

Hvilken metode er den letteste??

Avatar billede trayzor Nybegynder
26. februar 2002 - 18:09 #1
Jeg er selv ret ny mht. Interbase men dette er hvad jeg har kunnet finde ud af:

1. Først oprettes en "generator". (Dette er startværdien der som default er 0). Dette gøres således:
CREATE GENERATOR navn;

Hvis du vil have en anden startværdi ændres den således:
SET GENERATOR navn TO int;
Her sættes int til den nye startværdi.
Generators er globale og kan kaldes fra flere steder.

2. Du skal nu lave en trigger der kalder gen_id().
Syntaksen for gen_id() ser sådan ud: gen_id(generatornavn, step);

Her er "step" det antal der skal forøges med for hver gang funktionen kaldes.

Et eksempel taget fra Interbase-hjælpen hvor der laves en trigger:

SET TERM !! ;
CREATE TRIGGER CREATE_EMPNO FOR EMPLOYEES
    BEFORE INSERT
    POSITION 0
    AS BEGIN
        NEW.EMPNO = GEN_ID (EMPNO_GEN, 1);
    END

SET TERM ; !!

Håber du kan bruge det... :o)

/TrAyZoR
Avatar billede faetter_br Nybegynder
05. marts 2002 - 12:41 #2
Mange tak skal De have
Avatar billede trayzor Nybegynder
05. marts 2002 - 17:41 #3
No problemo.. :o) Du kan f.eks. kalde gen_id() fra din insertsætning.
insert into tabelnavn ( tabelid, navn, ... ) VALUES (gen_id(generatornavn,1), Thomas, ...);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester