User since
2006-06-09
76
Artikel
BenutzerIn
Hi,
ich greife mit einem Perlscript auf die Datenbank zu, es geht dabei um mein Gästebuch. soweit ist es schon fast fertig, fehlt aber u.a. noch, dass der beitrag immer eine Zahl dabei hat, der wievielte es nun ist.
Dazu habe ich eine Spalte in der DB angelegt, die gleichzeitig auch meine Schlüssel ID spalte sein soll, eindeutig identifizierbare Spalte meine ich damit. eintrag 1 bekommt in der Spalte dann eine 1, usw.
Meine Frage ist nun, ob ich die MySQL Datenbank so einstellen kann, dass diese Spalte automatisch hochzählt, wenn eine neuer Eintrag hinzukommt, und wie das geht!?
Ich habe irgendwann mal etwas davon gelesen, kann mich aber nicht mehr besinnen wo das war.
Oder muss ich das ganze doch über das Perlscript lösen?
also Nachschauen was die letzte Zahl war, und dann um eins addieren u. mit eintragen?
User since
2003-08-15
2653
Artikel
BenutzerIn
das geht mit auto_increment
du musst die eigenschaft einfach der spalte hinzufügen die erhöht werden soll.. die spalte muss dazu aber glaub ich auch ein integer sein, weil ich glaub dass er auch varchars etc erhöht geht erst seit neustem\n\n
<!--EDIT|Froschpopo|1149853996-->
User since
2005-01-17
14748
Artikel
Admin1
auto_increment sollte schon sinnvollerweise INTEGER sein.
User since
2006-06-09
76
Artikel
BenutzerIn
Danke, hat funktioniert.
Jetzt muss ich nurnoch irgendwie die Einträge in umgekehrter reihenfolge ausgeben.
Dazu müsste ich entweder in Perl die While schleife in entgegengesetzter Richtung ablaufen (wie könnte das gehen?), oder kann man das auch irgendwie über MySQL regeln?
User since
2003-08-15
2653
Artikel
BenutzerIn
das geht mit
order by spalte desc
order by spalte asc
und gehört ganz nach rechts in das statement... also hinter die from-klausel, bzw where-klausel (wenn verwendet)
desc und asc regelt die richtung.\n\n
<!--EDIT|Froschpopo|1149855451-->
User since
2006-06-09
76
Artikel
BenutzerIn
Ok, danke. hat sich inzwischen aber von selbst erledigt. Tabelle geleert u. neu angefangen u. die Richtiung hat diesmal gestimmt.
User since
2003-08-15
2653
Artikel
BenutzerIn
ich weiss nicht ob man sich auf die interne anordnung der datensätze unbedingt verlassen kann. aber das muss jemand beantworten, der sich damit besser auskennt.
aber es kann sein, dass bei bestimmten anderen spalteneigenschaften mysql das performanteste wählt und deine datenbank total durcheinanderbringt. das is mir mal passiert als ich nen anderen primärschlüssel festgelegt hab, plötzlich war die gesamte ausgabe anders.
ich schätze mal, dass das ähnlich einem filesystem funzt... auf das man sich auch nicht immer verlassen kann. ein glob() unter windows sieht möglicherweise anders als unter linux aus, auch wenn dieselben dateien im verzeichnis liegen.
User since
2005-01-17
14748
Artikel
Admin1
Eine Datenbank braucht mindestens einen Schlüssel, damit schneller auf Daten zugeriffen werden kann. Sonst wäre ja nur eine sequenzielle Suche möglich.
Wie die Daten intern gespeichert werden ist unwichtig. Zugegriffen wird doch über den Index-Schlüssel.
User since
2003-08-15
2653
Artikel
BenutzerIn
ich glaube er meint die reihenfolge der ausgabe.
bei "select * from table" ist die reihenfolge ja von der datenbank festgelegt.
ich vermute mal, er will die datensätze nach der auto_increment reihenfolge wieder raus haben... also: 1,2,3,4,5,6...
sollte ja auch eigentlich so sein.
User since
2005-01-17
14748
Artikel
Admin1
Bei select * erscheinen sie ja der Reihenfolge des Eintrags.