Moin!
wenn ich in meiner Datenbank für irgendeiner Zeile den Default wert setzte z.b alter table buch alter sprache set default "Deutsch";
Wird der Default bei einem NULL-Wert nicht angezeigt.Warum nicht?
Der Wert NULL steht nicht für "bitte Default-Wert annehmen", sondern ist ein eigenständiger Wert, der für "Kein Wert aus dem Wertebereich dieser Spalte angegeben" steht.
Beispiel:
Wenn man Temperaturen als Integer speichern will, und an einem Tag keine Temperatur eingetragen wurde, ist es unsinnig, dann "0" (0 Grad Celsius ist ja eine gültige Temperatur) oder extreme Werte (-999 Grad Celsius gibts zwar nicht, aber würde bei der Berechnung eines Durchschnittswerts natürlich trotzdem in die Rechnung eingehen) einzutragen. Mit NULL wird dieser Sachverhalt hingegen sofort klar.
Wenn du jetzt als Standardwert 20 (Grad Celsius) definierst, wird bei allen neuen Einträgen die 20 übernommen, wenn keine explizite Temperaturangabe im SQL-Insert steht. Die bestehenden NULL-Werte aber müssen zwingend erhalten bleiben, sonst würde sich ja dein Datenbestand ändern.
Standard ist, dass bei Feldern, die NULL erlauben, bei fehlender Wertangaben eben NULL eingetragen wird.
- Sven Rautenberg
My sssignature, my preciousssss!