webForumDet fria alternativet

Vill ha reda på det ID jag precis skapat i databasen..

ASP

7 svar · 237 visningar · startad av mattiasjarnhall

Medlem sedan apr. 2001126 inlägg
Frågan#1

När man kör en INSERT INTO mot en MySQL databas, går det då att få reda på det ID som skapades för den posten på något smidigt sätt? Har för mig att jag har sett det någon stans..
Typ att den man returnerar den post man precis skapat eller något liknande..

/MJ

Medlem sedan dec. 200012 464 inlägg
#2
set rs = connect.execute( "select last_insert_id")
id = rs(0)
Medlem sedan apr. 2001126 inlägg
#3

Men den kan inte var så pålitlig väl.. någon skulle ju kunna skapa en post innan jag kör min:
set rs = connect.execute( "select last_insert_id")

vilket skulle leda till att jag får fel ID nummer.. eller har jag fel?

Går det inte att returnera då jag INSERTAR på något vis?

/MJ

Medlem sedan dec. 200012 464 inlägg
#4

Detta är den enda metod som är pålitlig. trust me.

Medlem sedan juni 20019 024 inlägg
#5

Det är det som @@identity och Last_insert_id är till för, så att man får den aktuella transkationens ID, inte någon annans.

Man kan få ut det samtidigt som insert, men inte med MySQL.

Medlem sedan apr. 2001126 inlägg
#6

Försöker med della:

set objRs = objCon.Execute("SELECT last_insert_id")
intAcountId = objRs(0)

Men det vill sig inte riktigt... nått fel?

/MJ

Medlem sedan dec. 2000557 inlägg
#7

Ska inte tabellen med också i sql-satsen?

set objRs = objCon.Execute("SELECT last_insert_id() FROM tblTable") 
intAcountId = objRs(0)
Medlem sedan apr. 2001126 inlägg
#8

Tackar.. detta verkar funka.. :)

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)