Kai: MySQL Tabellenformat festlegen

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

  1. 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

    1. 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  
      > 
      
      1. 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

        1. 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

          1. 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

            1. Hallo Ihr beide

              Alles klar. Besten Dank für die Infos. Ich denke jetzt komme ich zurecht :-).

              Grüsse KAI

    2. 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.