Hallo,
ich erweitere eine vorhandene Tabelle um eine Spalte:
SQL-Code:
alter table Mitarbeiter
add Geschlecht CHAR(1)
default 'W' not null
constraint Mitarbeiter_Geschlecht check( Geschlecht = 'W' or Geschlecht = 'M');
Das wird so auch einwandfrei ausgeführt. Aber sollten die vorhandenen Datensätze nicht automatisch den Default-Wert 'W' erhalten? Tatsächlich wird '' (ein leerer String) eingetragen; ich habe ausdrücklich geprüft, dass es
nicht NULL ist.
Ähnliche Diskussionen gab es z.B. unter
spalte hinzufuegen inhalt der ds nicht null oder
feld wird mit null gefuellt obwohl es nicht soll, aber ohne eine Erklärung, die mir hilft.
Es ist natürlich kein Problem, den Default-Wert mit einem einzelnen Update-Befehl nachzutragen; aber sollte das nicht sofort erledigt werden?
[Nachtrag] Oops, mit INTEGER klappte es wunderbar:
SQL-Code:
alter table Versicherungsvertrag
add Basispraemie INTEGER
default 500 not null
constraint Vertrag_Basispraemie_Check check(Basispraemie > 0),
add Praemiensatz INTEGER
default 100 not NULL
constraint Vertrag_Praemiensatz_Check check(Praemiensatz > 0),
add Praemienaenderung DATE;
Was kann da wohl los sein?
Danke für Erläuterungen! Jürgen