![]() |
postgresql
hi leute! :cool:
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!!:confused: |
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. |
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?
|
*) 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 ... |
Alle Zeitangaben in WEZ +2. Es ist jetzt 16:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag