phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?Q?MySQL/PHP_unique_id_teilweise_erh=F6hen?=

[php] =?iso-8859-1?Q?MySQL/PHP_unique_id_teilweise_erh=F6hen?=

Georg Leitner georg.leitner_(at)_maxonline.at
Wed, 21 Feb 2001 23:04:00 +0100


Liebe Liste,
vielleicht kann mir ja jemand mit meinem kleinen MySQL-Problem helfen:

Ich hab eine Tabelle mit den feldern id (auto_increment) und sort_id
(unique), beide Int(8). Über sort_id sortiere ich die Abfragen.

 Bei einem Insert möchte ich bestimmen können, welchen Wert sort_id hat.
Daher muss ich wohl alle sort_ids größer als der einzufügende Wert um 1
erhöhen.

 ich habs mal mit

 UPDATE irgendwas SET sort_id=sort_id+1 WHERE sort_id>irgendwas ORDER BY
sort_id DESC

 probiert. Für mich heißt das: erhöhe alle sort_ids, die größer sind als
irgendwas und fang
dabei beim höchsten Wert von sort_id an.

das ORDER BY ... sollte zumindest laut
http://www.mysql.com/doc/U/P/UPDATE.html funktionieren.

OK, ich nehm mal an, das geht erst ab MySQL V. 3.23.34 (habs in der Eile
nicht im
Change-Log gefunden).

Meistens funktioniert die obige Abfrage auch ohne dem ORDER BY...
Nur leider hängt sich manchmal MySQL (unter Suse) auf und erhöht sort_id auf
irgendwelche Phantasiewerte (bereich 5300000). Dann kann ich nicht mehr auf
den Table
zugreifen und es hilf nur noc hein Restart von Apache/MySQL.

Hat jemand eine Ahnung, wie ich sicher meine sort_ids "sauber" erhöhen kann?

Ach ja, ich entwickle mit MySQL und PHP auf Apache W2K bzw. Suse.

Georg



php::bar PHP Wiki   -   Listenarchive