Avatar billede dna Nybegynder
19. april 2001 - 23:54 Der er 13 kommentarer og
1 løsning

Næste id ?

Hejsa alle..

Når jeg laver en \"Insert into...\" så har jeg brug for at vide hvilket auto-nummer der kommer !? Jeg ved ikke helt om dette kan lade sig gøre, da man jo skal tage højde for at der kan være slettet i databasen, og dermed kan man i hvert fald ikke bruge en \"select max(id)....\"

Nogen forslag!?
Avatar billede perla Nybegynder
20. april 2001 - 00:01 #1
Avatar billede erikjacobsen Ekspert
20. april 2001 - 00:01 #2
http://www.1script.com/asp0001.html  (hvis det da er Access. I PHP/MySql
er det nemmere)
Avatar billede keysersoze Ekspert
20. april 2001 - 00:01 #3
hmm - måske en

select top 1 from tabel order by id
Avatar billede erikjacobsen Ekspert
20. april 2001 - 00:05 #4
Ja, keysersoze, det er rigtig fint i et enkeltbrugersystem, eller hvis sikkerheden
er ret ligegyldig :)
Avatar billede keysersoze Ekspert
20. april 2001 - 00:07 #5
jo - det er jo egentlig rigtig nok :o/
Avatar billede dna Nybegynder
20. april 2001 - 00:09 #6
keysersoze: den går jo ikke hvis der bliver slettet i databasen.. så kan man komme ud for at den \"springer\" nogle auto-num over...

dna
Avatar billede keysersoze Ekspert
20. april 2001 - 00:14 #7
du vil jo altid så få udskrevet det højeste id - ved at sortere på den måde. Den er jo ligeglad med om der mangler nogle eller ej... men som e.j. siger, så er sikkerheden ikke så stor
Avatar billede dna Nybegynder
20. april 2001 - 00:18 #8
Ja.. det højeste ID.. men, hvad hvis den \"Nyeste\" er blevet slettet... så kan du kalde den højeste Id som nr. 26 f.eks. men har der på et tidspunkt været en 27 som er blevet slettet, vil man jo så oprette en 28... og på den måde du beskriver vil man få nr. 26 som \"max\" ... ik´ ?

dna
Avatar billede perla Nybegynder
20. april 2001 - 00:20 #9
Problemmet med top 1 er at hvis 2 brugere ankommer på samme tid, vil man kunne få en forkert værdi.

-Per
Avatar billede dna Nybegynder
20. april 2001 - 00:22 #10
Perla.. jeg brugte den artikel fra activeserverpages.dk til at løse mit problem, så jeg siger mange tak... de 100 point er dine...

dna
Avatar billede perla Nybegynder
20. april 2001 - 00:24 #11
Tak, smiler :-)
Avatar billede keysersoze Ekspert
20. april 2001 - 00:26 #12
perla >> ja - netop det sikkerhedsbrist var lige glemt...

dna >> du skriver (så vidt jeg har forstået), at du vil have id\'et på den post der lige er blevet insertet - og så kan den den jo ikke være slettet i mellemtiden. med det jeg beskriver (og som altså ikke kan anbefales pga manglende sikkerhed) vil du ALTID få dén højeste værdi - og hvis du bruger INSERT INTO vil den post du sætter ind jo under alle omstændigheder få den højeste værdi...
Avatar billede dna Nybegynder
20. april 2001 - 10:35 #13
Keysersoze: Problemet var at jeg troede at jeg kunne få id´en af vide lige INDEN jeg kørte min insert into...
Avatar billede keysersoze Ekspert
20. april 2001 - 10:50 #14
det kan gøres på næsten samme måde (dog igen med en vis usikkerhed) (og uden at have kigget på svaret fra perla) - for man kan jo så finde det højeste id og lægge 1 til - og det er så det nye id...

nå - men anyway....

EOD
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
Kurser inden for grundlæggende programmering

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