08. marts 2007 - 10:01Der er
12 kommentarer og 1 løsning
Find Højeste ID i SQL
Hej Eksperten,
Jeg sider og roder lidt med at system der skal importerer en masse vare fra en XML filer til en SQL database.
Når jeg indsætte dataen i mit System skal der automatisk genereres et id som ser sådan ud 'IDxx' hvor xx er tal der automatisk skal forhøjes med en for hver linie jeg smider ind. Altså en kombination af bogstaver og tal.
Men hvordan gør jeg det bedst, når jeg skal tænke performance ind i det?
Jeg har tidligere brugt en funktion der looper gennem alle ID'er i databasen og for hver enkelt checker om den er større end den tidligere og hvis den var smed jeg den i en variabel. men det kan umuligt være det smarteste når der kommer rigtig mange poster i databasen.
Hvis vil tænke performance ind i det, så skulle du nok lave dit ID til et INT. Så kan du også bruge autonummering, og så undgår du alt det bøvl med at skulle til at finde det højeste ID. For det er nemlig ikke særligt godt preformance-mæssigt.
Hvis det er fordi at du gerne vil fremvise dine ID'er til brugere som "IDxx" så kan du jo bare hæfte "ID"-delen på i brugerfladen.
Ellers prøv og forklar hvorfor du vil have at der skal stå "IDxx" i databasen.
x-guy: Jeg kan ikke ændre ID'et til INT, da det ikke er et system jeg har udviklet, jeg skal blot importerer, Men ja hvis jeg bare kunne så var problemet løst.
gawi: Jeg har prøvet dit eksempel, og det virker fint.
Og det må uden tvivl være bedre end at loope database igen for at finde det højeste id.
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.