![]() |
Spalte hat den Wert Null und lässt sich nicht updaten
Hallo, ich habe eine Tabelle mit einer Spalte (ANZAHLMAIL) . Nun will ich per SQL Update die Spalte um 1 erhöhen.
Delphi-Quellcode:
Der SQL Befehl wird ausgeführt aber die Spalte ist immer noch NULL, Warum?
update TBL_MANDANT set MAILANZAHL = MAILANZAHL + 1
Hat die Spate den Wert >= 0 dann funktioniert es. Wie kann ich das umgehen das auch bei Null der Update Befehl funktioniert. |
AW: Spalte hat den Wert Null und lässt sich nicht updaten
NULL ist halt was anderes als 0 !
NULL ist leer und damit kann Dein SQL-Statement nix anfangen... Ciao Stefan |
AW: Spalte hat den Wert Null und lässt sich nicht updaten
Probiere mal folgendes:
Code:
update TBL_MANDANT set MAILANZAHL = ISNULL(MAILANZAHL, 0) + 1
|
AW: Spalte hat den Wert Null und lässt sich nicht updaten
NULL plus/minus/und/oder Irgendwas ist immer NULL.
![]() COALESCE, ISNULL usw. sind mögliche Lösungen. |
AW: Spalte hat den Wert Null und lässt sich nicht updaten
Aber Achtung: Eben weil NULL nicht das selbe wie 0 ist, sollte man NULL und 0 nicht gleich setzen. Die Frage ist, warum ein Feld NULL enthält, obwohl es doch 0 enthalten sollte.
Vielleicht wäre eine DEFAULT Klausel bei der Tabellenerstellung sinnvoll oder eine Initialisierung beim INSERT. |
AW: Spalte hat den Wert Null und lässt sich nicht updaten
ISNULL kennt Firebird nicht. Ich denke ich muss nach dem einfügen der Spalte den Wert auf 0 setzten.
|
AW: Spalte hat den Wert Null und lässt sich nicht updaten
Zitat:
Code:
update TBL_MANDANT set MAILANZAHL = coalesce(MAILANZAHL, 0) + 1
|
AW: Spalte hat den Wert Null und lässt sich nicht updaten
Dank himitsu,
das funktioniert.
Delphi-Quellcode:
update TBL_MANDANT set MAILANZAHL = COALESCE(MAILANZAHL, 0) + 1
|
AW: Spalte hat den Wert Null und lässt sich nicht updaten
NULLIF, COLAESCE,
SQL-Code:
IIF( <Spalte> is Null, 1, <Spalte> = <Spalte> +1)
SQL-Code:
case <Spalte>
when null then 1 else <Spalte> = <Spalte> +1 end |
AW: Spalte hat den Wert Null und lässt sich nicht updaten
Nocheinmal: Wenn man seine Tabellen von Anfang an g´scheit definiert braucht es nachher keine komplizierten Kopfstände.
Merke: NULL <> 0 ISNULL, IIF, COALESCE, WHEN in Kombination mit NULL sind immer ein Zeichen für mangelhaftes Design. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz