On Mon, 4 Aug 2003, John Harrold wrote:
> i'm trying to alter a table call it 'my_table' and i'm trying to set the
> field 'my_id' to prevent null values from being inserted. when i run the
> following:
>
> ALTER TABLE my_table ALTER my_id SET NOT NULL;
>
> i get:
>
> ERROR: ALTER TABLE: Attribute "my_id" contains NULL values
>
> so i want to find out which rows have null values so i run:
>
> my=# select my_id from my_table where my_id=NULL;
> my_id
> ---------
> (0 rows)
>
>
> so this would indicate to me that there are no rows in which my_id is NULL.
> so what is preventing me from altering the table? or am i just doing
> something wrong?
Yep, you are. But it's a common mistake for folks just learning about
NULL.
Nothing can be equal to NULL, since NULL by it's definition isn't even
equal to itself:
What you need is "is null"
select * from table where field IS NULL;