Hallo,
ich habe eine Tabelle mit zusammengesetzen Schlüssel.
Wegen einer Änderung bedarf es nun eines Updates in einer der Schlüssel.
Der Schlüssel setzt sich zusammen aus einer ID und einer Line Number, die DateTime ist auch eindeutig aber nicht im Schlüssel.
Z.B.
Nun soll in Zukunft die LineNumber mit 1 beginnen, die LineNumber 0 darf nicht mehr vorkommen.
Das Update soll nun alle LineNumber Werte um einen Wert erhöhen. Also hier die Werte 1,2,3 haben.
Ich müsste also mit LineNumber von hinten beginnend den Wert um 1 incrementieren. Allerdings weiß ich nicht wie? Wenn ich das Folgende ausführe bekomme ich eine duplicate key exception.
Würde mich freuen wenn jemand Rat wüsste.
Danke
ich habe eine Tabelle mit zusammengesetzen Schlüssel.
Wegen einer Änderung bedarf es nun eines Updates in einer der Schlüssel.
Der Schlüssel setzt sich zusammen aus einer ID und einer Line Number, die DateTime ist auch eindeutig aber nicht im Schlüssel.
Z.B.
Code:
DateTime (dt) | ID | LineNumber (ln) 2011-06-20 13:27:22.634285 55 0 2011-06-20 13:27:22.655079 55 1 2011-06-20 13:27:22.668225 55 2 2011-06-20 13:53:58.046228 57 0 ........
Das Update soll nun alle LineNumber Werte um einen Wert erhöhen. Also hier die Werte 1,2,3 haben.
Ich müsste also mit LineNumber von hinten beginnend den Wert um 1 incrementieren. Allerdings weiß ich nicht wie? Wenn ich das Folgende ausführe bekomme ich eine duplicate key exception.
Code:
UPDATE TABLE SET ln= ln +1 WHERE dt IN ( SELECT dt FROM TABLE ORDER BY id , ln DESC );
Danke
Comment