Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Delete was [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Delete was


 
code404
07-06-2002, 11:10 
 
Hallo Leute

also ich habe eine Tabelle z.B.
Id
1
2
3
4

Wie kann ich jetzt Id 2 z.B. löschen.

wenn ich

Delete table where Id = 2

nehme wird der nächste Datensatz vor die 3 und 4 geschrieben also:
1
5
3
4
was kann ich dagegen tun??

Vielen Dank

 
Berni
07-06-2002, 11:22 
 
wie wäre es mit einem "order by"

 
code404
10-06-2002, 18:59 
 
Ja das geht aber trotzdem ist ja die Datenbank noch durch einander geht das denn nicht irgendwie anders??


Und dann noch eine andere Frage die spalte ID ist ein auto_increment. Kann ich nach dem löschen mit UPDATE die Tabelle so verändern das wieder 1, 2, 3, 4, da steht und der nächste Datensatz der hinzugefügt wird auch noch mit 5 weitergeht???

Danke

 
mkJack
10-06-2002, 21:14 
 
code404 schrieb
... geht aber trotzdem ist ja die Datenbank noch durch einander ...Die Datenbank legt das intern eben so ab.

Eine ID ist eine eindeutige Zuordnung und keine Reihe, die immer 1erweise brav von 1 bis n geht .
Wenn Datensätze gelöscht werden, dann passiert genau das. Und ob da nun 1, 12 oder 343 steht, spielt doch für die Zuordnung keine Rolle.

Sag einfach was du mit der ID vorhast, vielleicht findet sich eine andere Lösung für dich.

 
goth
10-06-2002, 22:10 
 
Du kannst auch mit ALTER TABLE tabelle ORDER BY col (http://www.mysql.com/doc/A/L/ALTER_TABLE.html) die Tabelle einmalig sortieren.

oder nach dem löschen eines Datensatzes ein OPTIMIZE TABLE tabelle (http://www.mysql.com/doc/O/P/OPTIMIZE_TABLE.html) durchführen.

Allerdings ist das ... wie in etwas freundlicherer Art von mkJack erwähnt ... Deppen-SQL ... per Definition ist es vollkommen irrelevant in welcher Reihenfolge Daten in der Datenbank abgelegt wurden ... die Reihenfolge der Datensätze wie auch die Menge und Reihenfolge der Attribute ist einzig und alleine von der Abfrage abhängig ... soll heißen wird durch die Abfrage definiert.

Die Datenbank verwendet beim ORDER BY den entsprechenden Hash Index ... und zwar unabhängig davon ob Du die Tabelle vorher sortiert hast oder nicht!

Letztlich ist dieses Vorgehen in Bezug auf die Gesamtoperationen und damit Belastung des Server durchaus weitaus optimaler.

Man sollte sich wenn man ein Werkzeug wie SQL verwendet einfach mal an seine Regeln halten ... damit macht man sich das Leben leichter.

 
code404
10-06-2002, 23:22 
 
He goth

Vielen Dank

Ich arbeite zum ersten mal mit Datenbanken und habe deswegen noch nicht den Durchblick! Aber trotzdem noch mal danke an alle.

 
mkJack
10-06-2002, 23:25 
 
Dann sag doch, was du mit der ID vorhast oder hat dich nur rein optisch gestört, daß die IDs so "durcheinander" in der DB stehen?

 
goth
11-06-2002, 01:19 
 
Original geschrieben von code404
He goth

Vielen Dank

Ich arbeite zum ersten mal mit Datenbanken und habe deswegen noch nicht den Durchblick! Aber trotzdem noch mal danke an alle.

Und weil ich das auf den ersten Blick erkannt habe, habe ich Dir das erklärt ... :dontknow:


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:09 Uhr.