webForumDet fria alternativet

Senaste posten

4 svar · 320 visningar · startad av Fireh

FirehMedlem sedan jan. 2003173 inlägg
#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.

rakiMedlem sedan jan. 2003137 inlägg
#2

Du hittar senaste ID´t i LAST_INSERT_ID()

FirehMedlem 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)

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

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

Det verkar fungera...
Tack så mycket!

136 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)