webForumDet fria alternativet

högsta värdet +1 vid en insert

4 svar · 294 visningar · startad av SugarDaddy

SugarDaddyMedlem sedan apr. 20021 155 inlägg
#1

Jag gör en vanlig INSERT:

INSERT INTO tbl_category SET langid='$langid', componentid='$componentid', sublevel='1', 
author='$author', publish='$publish' osv..

Fint så, men vad jag skulle vilja göra är att redan i första inserten även få in att fältet "ordering" automatiskt sätts till MAX(ordering)+1, går detta eller måste jag först plocka ut det aktuella autoincrement-värdet via mysql_insert_id() exvis, SELECT MAX enligt ovan, och sedan gör en ny INSERT via id:et?
(db = mysql)

@ndersMedlem sedan juni 200032 969 inlägg
#2

vilken version av MySQL?

Om versionen stödjer subqueries borde du kunna göra så här:

INSERT INTO tabell (fld1, fld2) VALUES ('foo', (SELECT Max(bar)+1 FROM tabell))

Möjligen.

mvh

SugarDaddyMedlem sedan apr. 20021 155 inlägg
#3

Mmm, funderade på det men jag vet tyvärr inte vilken version (4.1 som krävs för subqueries lr hur), dom har inte bestämt webbhotell än och jag har ingen möjlighet att påverka valet heller så jag "vågar" inte chansa.

@ndersMedlem sedan juni 200032 969 inlägg
#4

Då får du nog kolla upp först vilket värde du ska stoppa in.

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Om ordering har egenskapen auto_increment så behöver du inte göra någonting vid insert.

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