webForumDet fria alternativet

Ta reda på Auto_increment-värdet

4 svar · 274 visningar · startad av Kullervo

KullervoMedlem sedan juli 200226 inlägg
#1

jag har en tabell där en av kolumnerna är en Int som är primary key och auto_increment. hur gör jag för att ta reda på vad en ny post får för värde i den kolumnen?

det är nämligen så att jag gör en webbshop där det order-nummret (ovan nämda kolumn) ska skickas till beställarens mail när orden skapats. det går såklart att ta ut maxvärdet ur kolumnen och sedan addera 1, men det känns inte rätt med tanke på att det skulle kunna gå fel om två ordrar görs sammtidigt. dessutom är det mycket arbete att hitta det högsta värdet.

SPiNMedlem sedan mars 20007 896 inlägg
#2

I Access och MSSQL Server använder du:

SELECT @@IDENTITY;

...för att få ut räknarvärdet.

KullervoMedlem sedan juli 200226 inlägg
#3

Glömde säga att jag kör mySQL 3.23. Men på det sättet så finns det ändå risk för att två ordrar som registreras sammtidigt stör varandra.
Order 1 registreras i databasen.
Order 2 registreras i databasen.
Order 1 tar ut senaste värdet på order-id:t och mailar det till kunden.
Order 2 tar ut senaste värdet på order-id:t och mailar det till kunden.

på det sättet kommer alltså båda kunderna få kund nr 2:s ordernummer i mailen... är chansen så liten att det händer att man kan bortse från att sådant händer?

LarsGMedlem sedan dec. 200012 464 inlägg
#4

I mysql:

select last_insert_id()

Vilken metod menar du? @@identity och last_insert_id blandar inte ihop id för olika anslutningar.

Flyttas från SQL till Mysql

KullervoMedlem sedan juli 200226 inlägg
#5

aha. visste inte att databas-servern brydde sig om vilken anslutning som den arbetade mot när man gör sådant.

tack för hjälpen!

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