From: | Ed Loehr <eloehr(at)austin(dot)rr(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pggeneral <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: How to drop a NOT NULL column constraint? |
Date: | 2001-01-02 18:45:48 |
Message-ID: | 3A5221DC.AFD3AA4F@austin.rr.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Tom Lane wrote:
>
> Ed Loehr <eloehr(at)austin(dot)rr(dot)com> writes:
> > I need to alter the table to get rid of the "NOT NULL" constraint on the
> > 'id' column. Can I do this using ALTER TABLE?
>
> There isn't an ALTER TABLE variant for this at the moment, but you can
> do it the hard way: reach in and change the attnotnull boolean in the
> column's pg_attribute row. The actual update would only require
>
> UPDATE pg_attribute SET attnotnull = 'f' WHERE
> attname = 'id' AND attrelid = whatever...
>
> but I don't believe this will be noticed automatically by running
> backends. I think a VACUUM on your table afterwards would be sufficient
> to force the backends to notice the change.
Thanks. That's nice and easy. For posterity, here's the command I used:
UPDATE pg_attribute SET attnotnull = 'f'
FROM pg_class c
WHERE attname = 'id'
AND attrelid = c.oid
AND c.relkind = 'r'
AND c.relname = 'foo';
(not sure the 'relkind' predicate is necessary).
Regards,
Ed Loehr
From | Date | Subject | |
---|---|---|---|
Next Message | Mihail Marinov | 2001-01-02 19:56:28 | cyrillic and sort order (ORDER BY) |
Previous Message | Tom Lane | 2001-01-02 18:04:23 | Re: How to drop a NOT NULL column constraint? |