Standardwert für int soll nicht '0' sein

deinertsche

Erfahrenes Mitglied
Hi!
Ich speichere in meiner MySQL-Datenbank einige Zahlen als integer. Wenn man nix eingibt, dann möchte ich aber nicht dass dort '0' eingefügt wird, sondern lieber 'NULL' oder am besten gar nix.

Leider wird immer '0' eingefügt aber 0 ist auch ein zu speichernder Wert und man kann dann nicht mehr unterscheiden ob nichts eingegeben wurde oder ob für dieses Ergebnis wirklich eine 0 gespeichert werden soll.
 
Weiss denn keiner eine Lösung?
Ich könnte die Zahlen natürlich als Varchar speichern und für numerische Vergleiche in der Select-Anfrage dann jedesmal mit 1 multiplizieren aber das ist irgendwie nciht besonders elegant.
 
Schon mal einen Blick ins Handbuch riskiert?
CREATE TABLE hat gesagt.:
...
Wenn kein DEFAULT-Wert für eine Spalte angegeben wird, weist MySQL automatisch einen zu.
Wenn die Spalte NULL als Wert aufnehmen darf, ist der Vorgabewert NULL.
Wenn die Spalte als NOT NULL deklariert ist, hängt der Vorgabewert vom Spaltentyp ab:
  • Bei numerischen Typen ausser denen, die mit dem AUTO_INCREMENT-Attribut deklariert wurden, ist der Vorgabewert 0. Bei einer AUTO_INCREMENT-Spalte ist der Vorgabewert der nächste Wert in der Folge.
  • Bei Datums- und Zeit-Typen ausser TIMESTAMP ist der Vorgabewert der entsprechende 0-Wert für den Typ. Bei der ersten TIMESTAMP-Spalte einer Tabelle ist der Vorgabewert das aktuelle Datum und die aktuelle Zeit. See Abschnitt 7.2.2, „Datums- und Zeit-Typen“.
  • Bei Zeichenketten-Typen ausser ENUM ist der Vorgabewert die leere Zeichenkette. Bei ENUM ist der Vorgabewert der erste Aufzählungswert.
...
Gruß hpvw
 
Zurück