Int(1)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Int(1)

    Hallo!
    Ich habe eine tabelle erstellt.
    test3:
    number int(1) unsigned Not Null auto_increment primary key;

    Ich dachte jetzt, da ich int(1) gewählt habe kann ich in diese Tabelle Nummern bis 255 einfügen.
    Ich kann in das number feld jedoch auch zahlen wie z.B.: 300 einfügen.
    Oder besagt das int(1), dass der Auto_increment wert max bis 255 geht?

  • #2
    int(1) unsigned definiert eine Speicherbreite von 1 Byte, also 8 Bit, die im Dualsystem 2^8 verschiedene Werte darstellen können. Durch integer wird festgelegt, dass die Werte ganzzahlig numerisch interpretiert werden und unsigned legt schließlich fest, dass es die Werte von 0 bis 2^8 - 1 sind - ohne unsigned wäre es -1 * 2^7 bis 2^7 - 1.

    Nochmal in Kurz: int(1) unsigned fasst alle Werte von 0 bis 255. Die 1 steht nicht für die Anzahl der Dezimalstellen sondern die Anzahl der Bytes

    http://dev.mysql.com/doc/refman/5.0/...ric-types.html
    Zuletzt geändert von onemorenerd; 17.12.2006, 15:33.

    Kommentar


    • #3
      Nochmal in Kurz: int(1) unsigned fasst alle Werte von 0 bis 255. Die 1 steht nicht für die Anzahl der Dezimalstellen sondern die Anzahl der Bytes
      Das steht ja wohl in krassem Gegensatz zu dem geschilderten Problem und deiner angegebenen Quelle. INT besitzt immer eine Speichergröße von 4 byte (= 32 bit = 2^32 = 4294967296) die Angabe in der Klammer definiert die (Zeichen-)Länge der Zahl, falls diese kleiner ist. (Laut obiger Quelle) wird die Zahl nach links hin mit Leerstellen aufgefüllt (bei zerofill mit Nullen). Benutze also TINYINT für dein Problem...

      ...man sollte schon wissen was man zitiert...

      Kommentar


      • #4
        Jep, ich habs jetzt gechecked. Danke!

        Kommentar

        Lädt...
        X