Re: adding column with not null constraint

Lists: pgsql-sql
From: Vivek Khera <khera(at)kcilink(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: adding column with not null constraint
Date: 2002-10-18 20:12:01
Message-ID: x7u1jjmrqm.fsf@onceler.kciLink.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

I'm looking to add a column to my database with not null and a default
value:

vk=> alter table msg_owner add column user_optional_fields varchar(255) NOT NULL default '';
ERROR: Adding columns with defaults is not implemented.
Add the column, then use ALTER TABLE SET DEFAULT.
vk=> alter table msg_owner add column user_optional_fields varchar(255) NOT NULL ;
ERROR: Adding NOT NULL columns is not implemented.
Add the column, then use ALTER TABLE ADD CONSTRAINT.

Ok, so we can succeed with this:

ALTER TABLE msg_owner ADD COLUMN user_optional_fields VARCHAR(255);
ALTER TABLE msg_owner ALTER user_optional_fields SET DEFAULT '';
UPDATE msg_owner SET user_optional_fields = '';

Now my problem is I cannot find any syntax for ALTER TABLE ADD
CONSTRAINT to put a NOT NULL constraint on a column. Can someone help
me here?

I'm using Postgres 7.2.1 on FreeBSD 4.6.

Thanks.

--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Vivek Khera, Ph.D. Khera Communications, Inc.
Internet: khera(at)kciLink(dot)com Rockville, MD +1-240-453-8497
AIM: vivekkhera Y!: vivek_khera http://www.khera.org/~vivek/


From: <mallah(at)trade-india(dot)com>
To: <khera(at)kcilink(dot)com>
Cc: <pgsql-sql(at)postgresql(dot)org>
Subject: Re: adding column with not null constraint
Date: 2002-10-18 21:57:41
Message-ID: 1253.203.145.130.142.1034978261.squirrel@mail.trade-india.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql


Hi Vivek,

In 7.3 there will be a fully implemented ALTER TABLE command for making
columns null or not null.

Currently you can update 'attnotnull' of pg_attribute system catalog
for the attrelid and attname. use pg_class system catalog for getting
attrelid of a given relation.

Regds
MAllah.

> I'm looking to add a column to my database with not null and a default value:
>
> vk=> alter table msg_owner add column user_optional_fields varchar(255) NOT NULL default '';
> ERROR: Adding columns with defaults is not implemented.
> Add the column, then use ALTER TABLE SET DEFAULT.
> vk=> alter table msg_owner add column user_optional_fields varchar(255) NOT NULL ; ERROR:
> Adding NOT NULL columns is not implemented.
> Add the column, then use ALTER TABLE ADD CONSTRAINT.
>
> Ok, so we can succeed with this:
>
> ALTER TABLE msg_owner ADD COLUMN user_optional_fields VARCHAR(255); ALTER TABLE msg_owner ALTER
> user_optional_fields SET DEFAULT '';
> UPDATE msg_owner SET user_optional_fields = '';
>
> Now my problem is I cannot find any syntax for ALTER TABLE ADD
> CONSTRAINT to put a NOT NULL constraint on a column. Can someone help me here?
>
> I'm using Postgres 7.2.1 on FreeBSD 4.6.
>
> Thanks.
>
> --
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Vivek Khera, Ph.D.
> Khera Communications, Inc.
> Internet: khera(at)kciLink(dot)com Rockville, MD +1-240-453-8497 AIM: vivekkhera Y!:
> vivek_khera http://www.khera.org/~vivek/
>
> ---------------------------(end of broadcast)--------------------------- TIP 5: Have you
> checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html

-----------------------------------------
Get your free web based email at trade-india.com.
"India's Leading B2B eMarketplace.!"
http://www.trade-india.com/


From: Johannes Lochmann <johannes(dot)lochmann(at)chello(dot)at>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: adding column with not null constraint
Date: 2002-10-20 15:26:39
Message-ID: 1035127600.30905.5.camel@chello213047228041.tirol.surfer.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

On Fri, 2002-10-18 at 22:12, Vivek Khera wrote:
> ALTER TABLE msg_owner ADD COLUMN user_optional_fields VARCHAR(255);
> ALTER TABLE msg_owner ALTER user_optional_fields SET DEFAULT '';
> UPDATE msg_owner SET user_optional_fields = '';
>
> Now my problem is I cannot find any syntax for ALTER TABLE ADD
> CONSTRAINT to put a NOT NULL constraint on a column. Can someone help
> me here?

An additional thought to what mallah(at)trade-india(dot)com said:

BEGIN;

ALTER TABLE msg_owner ADD CONSTRAINT chk_msg_owner_usr_opt_flds_null
CHECK(user_optional_fields IS NOT NULL);

COMMIT;

HTH

Johannes Lochmann