NOT NULL v PgSQL 7.2?

Radek Kanovsky rk na dat.cz
Pondělí Červen 23 10:49:16 CEST 2003


On Mon, Jun 23, 2003 at 10:23:47AM +0200, Honza Pazdziora wrote:

> > > V PgSQL 7.2 nejde pridat do tabulky sloupec s NOT NULL constraint?
> > 
> >  Co je to "pridat"? ALTER table?
> > 
> >  7.2 tu nemam, ale podle dokumentace by to ani jit nemelo, protoze
> >  tam ALTER [ COLUMN ] column { SET | DROP } NOT NULL neni.
> 
> Mozna mel OP na mysli pridani noveho sloupce, tedy
> 
> 	ALTER TABLE [ ONLY ] table [ * ]
> 	     ADD [ COLUMN ] column type [ column_constraint [ ... ] ]
> 
> Tipoval bych, ze problem muze nastat, pokud se snazi pridat NOT NULL
> sloupec do tabulky, kde uz jsou nejake zaznamy. Samozrejme by ale
> pomohlo, pokud bychom mohli videt presny prikaz a presnou chybu.

Nedávno o tom šla debata v pg-bug. Řešení je následující:

1. ALTER TABLE t ADD COLUMN int s;
2. nastavit hodnoty sloupce s, pokud má tabulka už nějaké záznamy
3. ALTER TABLE t ADD CONSTRAINT NOT NULL (s);

Radek Kaňovský


Další informace o konferenci Test