webForumDet fria alternativet
Logga in / Bli medlem

Ta reda på Auto_increment-värdet

Databaser & SQL

4 svar · 276 visningar · startad av Kullervo

Medlem sedan juli 200226 inlägg
Trådstart#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.

Medlem 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.

Medlem 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?

Medlem 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

Medlem 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!

254 ms totalt · 4 externa anrop · v20260731065814-full.50d4b5bd
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)