Einzelnen Beitrag anzeigen

Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#1

ADD COLUMN mit Default-Wert klappt nicht

  Alt 28. Okt 2009, 17:33
Datenbank: Firebird • Version: 2.1 • Zugriff über: IBExpert Personal
Hallo,

ich erweitere eine vorhandene Tabelle um eine Spalte:
SQL-Code:
alter table Mitarbeiter
  add Geschlecht CHAR(1)
      default 'Wnot null
      constraint Mitarbeiter_Geschlecht check( Geschlecht = 'Wor 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
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat