Avatar billede jensborgbjerg Nybegynder
13. december 2005 - 02:15 Der er 3 kommentarer

Få fat i sidste indsatte record id

Et spørgsmål:

Jeg indsætter en record i tabel med en sql kommando ala:
'strQ = "INSERT INTO latestGames (date, resultat, resultatString) VALUES.....

Jeg ønsker ved samme lejlighed at få adgang til recordens unikke id eftersom dette skal bruges senere på min asp side.
Er der en måde hvorpå man kan få trukket dette id ud? Dvs. jeg ønsker ikke at bruge en kommando ala:

strQ = "SELECT LAST_INSERT_ID() AS lastID FROM latestGames"

eftersom jeg risikerer concurrency hvor anden bruger indsætter en record imens og jeg vil således få fat i det forkerte id.
Er der nogen her, der har en god ide?

Venlige hilsner
Jens Borgbjerg
Avatar billede plx Nybegynder
13. december 2005 - 02:27 #1
LAST_INSERT_ID() er forbindelsesspecifik. Så selv om andre brugere når at indsætte i databasen før du afvikler komanndoen, så har det ingen effekt på det id du får returneret
Avatar billede plx Nybegynder
13. december 2005 - 10:42 #2
Du opretter en masse spørgsmål, men vender aldrig rigtig tilbage til dem. Det bør du nok overveje lidt mere, af respekt overfor de brugere som hjælper dig..
Avatar billede jensborgbjerg Nybegynder
13. december 2005 - 16:10 #3
Hej igen

Dvs. hvis jeg udfører følgende kommandoer

strQ = "INSERT INTO latestGames (date, resultat, resultatString, rated) VALUES ('" & dateTimeString & "','" & latestGame & "','" & writeString & "','" & rated & "')" 

my_conn.Execute strQ

strQ = "SELECT LAST_INSERT_ID() AS lastID FROM latestGames"

Set updateRS = my_conn.execute(strQ)

latestGamesID = updateRs("lastID")

Vil jeg med sikkerhed stå med en værdi for id i variablen latestGamesID, der tilhører den record jeg indsatte med:
strQ = "INSERT INTO latestGames (date, resultat, resultatString, rated) VALUES ('" & dateTimeString & "','" & latestGame & "','" & writeString & "','" & rated & "')" 
Er det korrekt?

Og med hensyn til:
"Du opretter en masse spørgsmål, men vender aldrig rigtig tilbage til dem. Det bør du nok overveje lidt mere, af respekt overfor de brugere som hjælper dig.."

Ja så er det taget til efterretning og jeg beklager meget.
Vil du være så venlig at lægge et svar ud, som jeg kan acceptere?

Tak for hjælpen
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