![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Jr. Member
![]() Registriert seit: 24.06.2002
Beiträge: 38
|
![]() hi leute!
![]() also ich hab da wieder mal ein kleines problem: es geht um eine postgres datenbank und die tabelle sieht zB so aus: key data 1 sehr gut 2 gut 3 befriedigend 4 genügend 5 nicht genügend da der schlüssel eine art priortätenordnung darstellt bezeichnet also der wert des schlüssels die wichtigkeit des datensatzes. ich möchte jetzt zb eine neue bewertung einführen, nehmen wir an "halbwegs gut" und diese soll die wertigkeit 3 bekommen. ich muß jetzt also alle schlüssel >= 3 um eins erhöhen! ich habe mir gedacht ich mach das mit: Code:
UPDATE "Table" SET key=key+1 WHERE key>=3; BITTE HILFE!! ![]() |
![]() |
![]() |
![]() |
#2 |
Elite
![]() Registriert seit: 08.11.2001
Alter: 42
Beiträge: 1.285
|
![]() So wie du das machst wird 3 auf 4 geändert und es entsteht ein Fehler. Probiers einfach mal in die andere Richtung:
5 -> 6 4 -> 5 3 -> 4 neuer Eintrag: 3 Dabei sollte kein Fehler auftreten. Ich bin mir allerdings nicht sicher, ob ORDER BY bei UPATE verwendet werden darf. Wenn nicht, dann frag einfach den höchsten Datendatz mit SELECT ab und geh dann in einer Schleife runter. mfg c.
____________________________________
www.sagmueller.net Freedom - use it or lose it (Lawrence Lessig) Im übrigen bin ich der Meinung, dass Microsoft zerschlagen werden muss. |
![]() |
![]() |
![]() |
#3 |
Jr. Member
![]() Registriert seit: 24.06.2002
Beiträge: 38
|
![]() also update und order by geht amal nicht. das mit select und mit der schleife hab ich mir auch schon überlegt, aber das muß doch irgedwie einfacher gehn oder?
|
![]() |
![]() |
![]() |
#4 |
Aussteiger
![]() |
![]() *) unique-key constraint disablen
*) update durchführen *) unique-key constraint enablen nachdem sich mit großer wahrscheinlichkeit auch noch felder in anderen tabellen auf den unique-key beziehen werden (foreign-keys) müssen die entsprechenden foreign-key constraints auch vorübergehend disabled werden ... sonst bleibt nur die möglichkeit das update mittels einer schleifenverarbeitung (s.o.) durchzuführen ...
____________________________________
Praktizierender Eristiker No hace falta ser un genio para saber quién dijo eso. Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein. |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|