dedlfix: MySQL-Wieso werden null-werte eingefügt

Beitrag lesen

Tach!

Was hat not null dann für einen sinn? Dann kann man es ja gleich weglaassen
es verhindert dass null eingetragen wird; in deinem Falle wäre es sinnvoll einen anderen Default-Wert für die Spalte zu bestimmen, wie wäre es mit null?

MySQL lässt kein NULL als Defaultwert für ein NOT-NULL-Feld gelten. Keinen Default-Wert anzugeben resultiert in einem Leerstring als Default-Wert (für ein NOT-NULL-Feld, sonst NULL). Ich fand auch keinen SQL-Mode, der MySQL zu einer Fehlermeldung veranlasst, wenn ein Feld nicht angegeben wird. Constraints auf andere Inhalte als Foreign Keys hab ich auch nicht gefunden.

Vermutlich gibt es keine Lösung für das Problem des OP, was vermutlich das Verhindern von leeren Eintragen ist. NOT NULL würde das aber sowieso nicht vollständig erfüllen können, weil bereits ein Leerstring kein NULL mehr ist. Und rein optisch sind aus White-Space bestehende Strings auch valide Werte und sicher ebenso ungewünscht, selbst wenn noch eine Längenprüfung stattfindet. Für das vermutete Problem ist MySQL als alleinige Prüfinstanz nicht ausgelegt. (Einfügen über Stored Procedures mit Werteprüfung? Die kann man mit einem einfachen INSERT ignorieren.)

dedlfix.