Elrondo: 0 bei INT

Datenbank: mySQL

Folgender Spaltentyp:
telefonnummer INT(20) NOT NULL

Wenn ich beim INSERT keinen Wert an diese Spalte übergebe, dann belegt er diese automatisch mit einer "0".
Ich möchte aber, dass wenn nichts übergeben wird, die Spalte leer gelassen wird, wie das bei der Eingabe gewollt ist (sonst hätte ich ja eine 0 eingetragen).
Ist sowas möglich oder muss man dann VARCHAR nehmen?

  1. Hallo,

    Folgender Spaltentyp:
    telefonnummer INT(20) NOT NULL

    entweder Du erlaubst NULL und nimmst den Default Wert raus oder Du nimmst VARCHAR, was ich empfehle, wegen +49 361 ...

    Viele Grüße vom Buzzer

    1. Der INT -Typ erscheint mir hier schon genau richtig zu sein da Vorwahlen und Länderkürzel in eine separaten Spalte einzuordnen sind.

  2. Hallo,

    1. ein Datentyp INT ist für die Speicherung von Telefonnummern schlicht und simpel falsch. Du kannst auch einem numerischen Datentypen keinen String '' zum speichern geben (normalerweise).

    2. Verwende bitte einen VARCHAR Datentypen mit ausreichender Länge

    3. Statt einer leeren Zeichenkette '' solltest du bei Nichteingabe den Wert einfach auf NULL belassen. NULL ist nix, unbekannt und wird vom DBMS auch als solches behandelt und verstanden

    4. Dazu definiere die Spalte telefonnummer als "nullable" -> NULL und nicht NOT NULL

    Gruss, Frank

  3. Hi,

    telefonnummer INT(20) NOT NULL
    Ich möchte aber, dass wenn nichts übergeben wird, die Spalte leer gelassen wird,

    "leer" heißt in SQL-Terminologie "NULL". Wenn Du die Spalte leer lassen möchtest, darfst Du den Wert für "leer" nicht verbieten.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. yo,

      leer <> NULL

      Ilja