MySQL Tabellenformat festlegen
Kai
- datenbank
0 Olaf Schneider0 KAI0 Olaf Schneider0 Vinzenz Mai0 Olaf Schneider0 Kai
0 Froschpopo
Hallo zusammen
Ich habe eine mySQL DB im Einsatzt und nun eine Frage. Ist es möglich einem Formularfeld eine bestimmte länge und Format zu zuweisen? Ich habe konkret ein auto_increment Feld bei welchen ich will das die Nummerierung zB so aussieht: CH001-354-XXX wobei bei XXX die Durchnummerierung der auto_increment Funktion geschrieben wird. Also zB. CH001-354-001m CH001-354-002. Geht so was?
Grüsse KAI
Hallo Kai,
[…] Ich habe konkret ein auto_increment Feld bei welchen ich will das die Nummerierung zB so aussieht: CH001-354-XXX wobei bei XXX die Durchnummerierung der auto_increment Funktion geschrieben wird. Also zB. CH001-354-001m CH001-354-002. Geht so was?
nicht mit MySQL; dort muss auto_increment numerisch sein. Du könntest aber mit
SELECT Concat('CH001-354-', id);
die von Dir gewünschte Numerierung erhalten. Bei dieser einfachen Lösung gehen Dir allerdings die führenden Nullen flöten. Dieses liesse sich zwar verhindern, nicht aber das Problem, was Du dann bekommen könntest, wenn id > 999 ist.
Gruß
Olaf
Hallo Olaf
Danke für Deine Antwort. Okay ich sehe das Problem. Eine andere Frage. Ist es wenigstens möglich, das auto_increment so zu definieren das die Zählung zB. bei 000100 beginnt und von da aufwärts zählt? Also 000101, 000102, 000103, usw. Die Nullen sollten aber erhalten bleiben, also die minimum Länge wäre dann 6-Stellig.
Güsse KAI
Hallo Kai,
[…] Ich habe konkret ein auto_increment Feld bei welchen ich will das die Nummerierung zB so aussieht: CH001-354-XXX wobei bei XXX die Durchnummerierung der auto_increment Funktion geschrieben wird. Also zB. CH001-354-001m CH001-354-002. Geht so was?
nicht mit MySQL; dort muss auto_increment numerisch sein. Du könntest aber mit
SELECT Concat('CH001-354-', id);
>
> die von Dir gewünschte Numerierung erhalten. Bei dieser einfachen Lösung gehen Dir allerdings die führenden Nullen flöten. Dieses liesse sich zwar verhindern, nicht aber das Problem, was Du dann bekommen könntest, wenn id > 999 ist.
>
> Gruß
> Olaf
>
Hallo Kai,
Danke für Deine Antwort. Okay ich sehe das Problem. Eine andere Frage. Ist es wenigstens möglich, das auto_increment so zu definieren das die Zählung zB. bei 000100 beginnt und von da aufwärts zählt? Also 000101, 000102, 000103, usw. Die Nullen sollten aber erhalten bleiben, also die minimum Länge wäre dann 6-Stellig.
Du kannst MySQL bei Anlegen der Tabelle mitteilen, es solle doch bitte bei 100 anfangen zu zählen. Die führenden Nullen sind Darstellung, nicht Inhalt. Du kannst diese entweder mit Stringfunktionen in MySQL oder mit Stringfunktionen in php erzeugen.
Gruß
Olaf
Hallo Olaf,
Danke für Deine Antwort. Okay ich sehe das Problem. Eine andere Frage. Ist es wenigstens möglich, das auto_increment so zu definieren das die Zählung zB. bei 000100 beginnt und von da aufwärts zählt? Also 000101, 000102, 000103, usw. Die Nullen sollten aber erhalten bleiben, also die minimum Länge wäre dann 6-Stellig.
Du kannst MySQL bei Anlegen der Tabelle mitteilen, es solle doch bitte bei 100 anfangen zu zählen. Die führenden Nullen sind Darstellung, nicht Inhalt.
Jein, es gibt in MySQL das Schlüsselwort ZEROFILL :-)
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
Jein, es gibt in MySQL das Schlüsselwort ZEROFILL :-)
Dinge gibts – mein Unterbewusstsein sagt mir auch, dass ich das mal gelesen – und dann aber schnell wieder vergessen habe, weil es mich nicht weiter interessierte.
Also Kai, vergiss meinen Kommentar oder klammere ihn ein.
Gruß
Olaf
Hallo Ihr beide
Alles klar. Besten Dank für die Infos. Ich denke jetzt komme ich zurecht :-).
Grüsse KAI
Ich würde einfach einen normalen MEDIUM INT autoincrement nehmen, dann bei neuen INSERTs die last_insert_id() auslesen, deinen Buchstabenkram davorpacken, und in eine extra Spalte legen der dann auch der primärschlüssel zugeordnet ist.