Schrift
[thread]3694[/thread]

Schlüsselspalte!?



<< |< 1 2 >| >> 18 Einträge, 2 Seiten
Danwe
 2006-06-09 15:48
#34455 #34455
User since
2006-06-09
76 Artikel
BenutzerIn
[default_avatar]
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?
Froschpopo
 2006-06-09 15:51
#34456 #34456
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
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-->
GwenDragon
 2006-06-09 16:05
#34457 #34457
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
auto_increment sollte schon sinnvollerweise INTEGER sein.
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

Danwe
 2006-06-09 16:14
#34458 #34458
User since
2006-06-09
76 Artikel
BenutzerIn
[default_avatar]
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?
Froschpopo
 2006-06-09 16:16
#34459 #34459
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
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-->
Danwe
 2006-06-09 17:28
#34460 #34460
User since
2006-06-09
76 Artikel
BenutzerIn
[default_avatar]
Ok, danke. hat sich inzwischen aber von selbst erledigt. Tabelle geleert u. neu angefangen u. die Richtiung hat diesmal gestimmt.
Froschpopo
 2006-06-09 17:34
#34461 #34461
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
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.
GwenDragon
 2006-06-09 18:08
#34462 #34462
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
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.
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

Froschpopo
 2006-06-09 18:12
#34463 #34463
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
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.
GwenDragon
 2006-06-09 18:42
#34464 #34464
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
Bei select * erscheinen sie ja der Reihenfolge des Eintrags.
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2006-06-09 15:48.