Avatar billede Lasse Novice
06. juni 2001 - 23:58 Der er 7 kommentarer og
2 løsninger

auto_increment

Hvordan definerer man en auto_increment kolonne i Oracle. Et lille eks. ville være på plads tak.
Avatar billede Lasse Novice
07. juni 2001 - 00:04 #1
15 mere for hvordan man viser alle tabeller i ens database
07. juni 2001 - 00:17 #2
du kan lave en sequence.

f.eks. create sequence <sequencenavn> start with <startværdi> increment by <heltalsværdi>

for at bruge sequencen i kolonnen skal du indsætte med sequencenavn.NEXTVAL

håber det kan bruges.

/PC
Avatar billede Lasse Novice
07. juni 2001 - 00:40 #3
lad os nu sige at der er mange brugere på ens hjemmeside. Man har oprettet en sekvens(kaldet bar)til til en bestemt kolonne i ens tabel. Bruger 1, skal indsætte noget, og han indsætter vha.

insert into foo values(bar.nextval, \'he\');
lige nu er der er ANDEN bruger(bruger2) som gør dette:
insert into foo values(bar.nextval, \'he2\');
så skal bruger 1 sætte noget ind i en anden tabel, og til dette skal han bruge den værdi fra før, så derfor:
insert into foo2 values(bar.currval, \'og\');

Her vil der ske en fejl i indsættelsen ik\'? Hvad gør man ved det?
Avatar billede Lasse Novice
07. juni 2001 - 00:58 #4
jeg har lige kigget lidt mere i dok.... det jeg egentlig skal bruge er ID der unikt identificerer en række i en tabel. Jeg har ca. 5 tabeller der hver har sin egen unikke ID kolonne...

Hvad med ROWID???
Avatar billede Lasse Novice
07. juni 2001 - 00:59 #5
du skal nok fåf flere point... lad os sige 50 for svar på disse spg.
Avatar billede teepee Nybegynder
07. juni 2001 - 09:38 #6
ROWID fortæller i hvilken blok, position m.v. at en række ligger, hvilket betyder at denne kan flyttes og få ny rowid såfremt at der ryddes op på basen, der opdateres eller så meget andet. Løbende id\'er plejer at gøre tricket, især fordi at primærnøgler oftest er mere end en kolonne og besværlige at arbejde med.

Hvis du sætter en insert trigger på tabeller er du sikker på at de rigtige løbenumre indsættes for selve værdien er jo ligegyldig:

create trigger [triggername]
    BEFORE INSERT on [tablename]
    FOR EACH ROW
      select [sequencename].nextval
      into :new.[id-columnname]
      from dual;

Så opnår du at du både får indsat løbenummer ved brug af forms og procedurer osv.
Avatar billede Lasse Novice
07. juni 2001 - 16:23 #7
ehhhh? Jeg er newbee, så jeg ved ingenting om det du lige foretog dig... hehe

anyway, jeg skal bruge den samme værdi i flere tabeller, så det er rimelig vigtigt at jeg får den værdi med over i samtlige tabeller... Kunne man ikke istedet lave en PL/SQL, og i den tildele en variable sequence.NEXTVAL, fordi så har man den rigtige hele tiden?(Jeg er total grøn... startede med Oracle heri fredags)
Avatar billede Lasse Novice
07. juni 2001 - 16:24 #8
og lige en anden ting... jeg har sat pointene op...

Hvordan laver man en sequence der er tilgængelig for alle sessioner?
Avatar billede Lasse Novice
07. juni 2001 - 23:25 #9
ok... jeg har selv fundet ud af de ting som der var tilovers heri spg. De fleste var nogle fejl 40(40 cm fra skærmen).... Tak skal i have begge to.
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