[MySQL-Tabelle] mehrstellige ID

g-zus

Erfahrenes Mitglied
Hi Leute,

hab da ne kleine Frage, und zwar:

Ich möchte mir eine Tabelle erstellen, bei der immer wieder neue Einträge hinzugefügt werden. Dabei soll die ID-Nummer am Anfang automatisch halt immer weiterzählen, bei jedem neuen Eintrag.

mein Problem:

Die ID hat nicht immer gleich viele Stellen, also 9 ist einstellig, 10 dann zweistellig etc.
Ich will aber, dass statt 1, "0000001" (insgesamt 7-stellig) angezeigt wird. Und bei 10 halt dann nur noch 5 Nullen davor angezeigt werden etc.

jetzt wollt ich halt fragen, ob sich das machen liese, dass das die MySQL-Tabelle automatisch so macht, oder ob ich da ein Script dafür brauch, das zuerst die höchste ID abfrägt, dann die Anzahl der Stellen abfragt und dann 7-"Anzahl an Stellen" vorne als Nullen ranhängt. Wollt einfach nachfragen, da ich versuchen will die Anzahl an MySQL-Abfragen etc. möglichst gering zu halten. =)
Und wenns schon automatisch geht, dann will ich das auch nutzen, hehe.
 
PHP:
CREATE TABLE tabelle (
   id varchar(7) UNSIGNED ZEROFILL NOT NULL auto_increment,

   ....... Rest der Tabelle ........,

   PRIMARY KEY  (id)
) TYPE=MyISAM;

so z.B.?
 
Wenn du es schaffst einen auto_increment auf einen Varchar zu setzen - ja :-) Probier's aber lieber mal mit einem Int, bevor du dir die Zähne ausbeißt... ;)
 
ah, mist.
hab blos schnell nen code kopiert von irgendeinem dummen Script und dann die Attribute schnell mal hingeschrieben.... :p

oki, thx.

Also

PHP:
CREATE TABLE tabelle (
   id int(7) UNSIGNED ZEROFILL NOT NULL auto_increment,

   ....... Rest der Tabelle ........,

   PRIMARY KEY  (id)
) TYPE=MyISAM;

müsste stimmen, gell ;)
 
Anonsten würde ich, wenn es nur um die Ausgabe der Nullen geht, das gar nicht in der DB speichern, sondern einfach nachschauen lassen was der höchste Wert ist, Zeichen zählen lassen, und dann bei der Ausgabe de rZahl gucken wie viel Zeichen diese hat und die Differenzen an Nullen davorstellen!
 
Zurück