Engine^Medlem sedan dec. 20003 887 inlägg Jag håller på med en infogningsfunktion, som inte är några problem alls, men i min tabell som ska manipuleras har jag kolumnerna intMoment, dblArtikelID som tillsammans är huvudnyckeln. Och om jag har värdena:
1 654654
2 654654
3 654654
4 654654
och vill infoga en ny 3:a, så måste ju de gamla värdena ökas på med 1. Detta försökte jag lösa med
UPDATE tblProcess SET intMoment = intMoment + 1 WHERE intMoment >= 3 AND dblArtikelID = 654654
Detta fungerar inte, eftersom det första som händer är att 3 + 1 skapar en dubblett. Kan jag uppdatera datat i fallande ordning eller något liknande? Först öka på 4 med 1 och sedan 3 osv..
LarsGMedlem sedan dec. 200012 464 inlägg Vad är det för dbms du har. Om du har ett unique constraint /primärnyckel på kolumnerna så skall det gå att göra den update du skrev. Du kan inte påverka vilken ordning som operationerna utförs i.
Om det inte går så ser jag bara tråkiga lösningar som att ta fram högsta värdet och sedan uppdatera enskilda poster.
aasahMedlem sedan mars 20034 471 inlägg Re: Updateproblem med unika nycklar.
Engine^ skrev:
Jag håller på med en infogningsfunktion, som inte är några problem alls, men i min tabell som ska manipuleras har jag kolumnerna som tillsammans är huvudnyckeln. Och om jag har värdena:
1 654654
2 654654
3 654654
4 654654
och vill infoga en ny 3:a, ...
Hur många tabeller har du? Och vad menar du med en ny trea? :q
Om du bara har denna tabell och du vill att det efter ändring ska bli:
1 654654
2 654654
3 654654
3 787878
4 654654
så behövs ingen ändring alls, däremot ett insert av den nya kombinationen. intMoment måste inte vara unikt, däremot måste kombinationen intMoment, dblArtikelID vara unik då de tillsammans bildar nyckel.
Engine^Medlem sedan dec. 20003 887 inlägg
LarsG skrev:
Vad är det för dbms du har. Om du har ett unique constraint /primärnyckel på kolumnerna så skall det gå att göra den update du skrev. Du kan inte påverka vilken ordning som operationerna utförs i.
Om det inte går så ser jag bara tråkiga lösningar som att ta fram högsta värdet och sedan uppdatera enskilda poster.
Ok, tackar för upplysningen. Tyvärr ser det alltså ut som att jag måste använda den tråkiga metoden :l