NULL-Werte in PostgreSQL

NULL-Werte in PostgreSQL

am 05.11.2008 17:12:49 von Olaf Radicke

Hi!

Ich habe da ein merkwürdiges Phänomen mit PostgreSQL, vielleicht =
hatte schon mal jemand ein Ähnlichen Problem?


dummy2=3D# UPDATE mitglied SET address_addition =3D '' WHERE address_add=
ition =3D NULL;
UPDATE 0

dummy2=3D# ALTER TABLE mitglied ALTER COLUMN address_addition SET NOT NULL;
FEHLER: Spalte »address_addition« enthält NULL-Werte

dummy2=3D# SELECT COUNT(*) FROM mitglied SET WHERE address_addition =3D NUL=
L;
count
-------
0
(1 Zeile)


Gruß

Olaf

--=20
Meine Rechtschreibfehler stehen unter der Creative Commons Lizenz.
(Bearbeitungen und Weitergabe unter gleichen Bedingungen):
http://creativecommons.org/licenses/by-sa/2.0/de/

--=20
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein

Re: NULL-Werte in PostgreSQL

am 05.11.2008 17:40:23 von Janko Richter

On Wednesday 05 November 2008 17:12:49 Olaf Radicke wrote:
> SELECT COUNT(*) FROM mitglied SET WHERE address_addition =3D NULL;

.... weil=20

SELECT COUNT(*) FROM mitglied WHERE address_addition IS NULL=20

richtig wäre.

Gruß: Janko

--=20
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein

Re: NULL-Werte in PostgreSQL

am 05.11.2008 18:00:31 von Ralf Schuchardt

Hi Olaf,

Am 05.11.2008 um 17:12 schrieb Olaf Radicke:

> Ich habe da ein merkwürdiges Phänomen mit PostgreSQL, vielleicht=20=
=20
> hatte schon mal jemand ein Ähnlichen Problem?

der Vergleich sollte lauten "address_addition IS NULL". Der Vergleich
von NULL mit irgendwas über den "=3D"-Operator liefert immer NULL, was=20=
=20
oft als "false" gewertet wird.

Viele Güße
Ralf


--=20
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein

Re: NULL-Werte in PostgreSQL

am 05.11.2008 18:02:06 von Janko Richter

On Wednesday 05 November 2008 17:12:49 Olaf Radicke wrote:
> Hi!
>=20
> Ich habe da ein merkwürdiges Phänomen mit PostgreSQL, vielleich=
t hatte schon mal jemand ein Ähnlichen Problem?
>=20
>=20
> dummy2=3D# UPDATE mitglied SET address_addition =3D '' WHERE address_a=
ddition =3D NULL;
> UPDATE 0
>=20
> dummy2=3D# ALTER TABLE mitglied ALTER COLUMN address_addition SET NOT NU=
LL;
> FEHLER: Spalte »address_addition« enthält NULL-Werte
>=20
> dummy2=3D# SELECT COUNT(*) FROM mitglied SET WHERE address_addition =3D N=
ULL;
> count
> -------
> 0
> (1 Zeile)

Nutze statt

WHERE address_addition =3D NULL

einfach

WHERE address_addition IS NULL

und schon gibt es kein merkwürdiges Phänomen mehr ;)

Gruß : Janko



___________________________________________________________
Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail=
: http://mail.yahoo.de


--=20
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein

Re: NULL-Werte in PostgreSQL

am 05.11.2008 18:07:03 von Olaf Radicke

Ja, der Denkfehler war, NULL für ein Wert zu halten, auf den gepr=C3=
=BCft wird.=20
Richtig ist aber, das NULL für die Abwesenheit eines wertes steht und
"IS NULL" eine Funktion ist, die auf die nichts Existenz des Wertes pr=C3=
=BCft.=20

Danke

Olaf

--=20
Meine Rechtschreibfehler stehen unter der Creative Commons Lizenz.
(Bearbeitungen und Weitergabe unter gleichen Bedingungen):
http://creativecommons.org/licenses/by-sa/2.0/de/

--=20
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein