webForumDet fria alternativet
Logga in / Bli medlem

Senaste posten

Databaser & SQL

4 svar · 320 visningar · startad av Fireh

Medlem sedan jan. 2003173 inlägg
Trådstart#1

Om jag lägger till en post i en tabell där jag har ett fält som heter ID som har auto_increment, finns det då något sätt att direkt få ut vilket ID som posten fick utan att göra ett nytt recordset?

Jag ska nämligen spara information i tre olika tabeller, där de två sista bl.a. ska innehålla det ID som posten fick i första tabellen. Tänkte om det går att slippa göra en läsning efter första skrivningen, och bara skriva till de tre direkt där man på något sätt fått fram ID efter första skrivningen.

Medlem sedan jan. 2003137 inlägg
#2

Du hittar senaste ID´t i LAST_INSERT_ID()

Medlem sedan jan. 2003173 inlägg
#3

Jag har lite svårt att testa just nu...
MySQL servern har gått ner o de svarar inte på jourtelefonen :bla

Men jag gjorde ett test tidigare under kvällen med följande kod:

db.Execute "INSERT INTO Test (Subject, Datum) VALUES ('Test',12)"
ID = LAST_INSERT_ID()

Det genererade ett felmeddelande på raden med "LAST_INSERT_ID", som jag inte kan komma på just nu. Men jag har en känsla av att det inte är just så här man gör.

Tabellens struktur är:
ID, Int(11), auto_increment, index
Subject, Text
Datum, Varchar(20)

Medlem sedan mars 20032 667 inlägg
#4
sql ="SELECT LAST_INSERT_ID()"
set rs = db.execute(sql)

id = rs(0)
Medlem sedan jan. 2003173 inlägg
#5

Det verkar fungera...
Tack så mycket!

246 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)