On 5/28/05, Tom Lane <[email protected]> wrote:
> Jaime Casanova <[email protected]> writes:
> > create rule ins_rule as on insert to v_foo do instead
> > insert into foo(col1, col2) values (new.col1, new.col2);
>
> > insert into v_foo(col2) values (1);
>
> > this give an error like:
> > psql:f:/views.sql:13: ERROR: null value in column "col1" violates
> > not-null constraint
>
> That's not a bug, and "fixing" it isn't acceptable.
>
> The correct solution to the problem you are looking at is
> to attach default expressions to the view itself. Adding
>
> alter table v_foo alter col1 set default nextval('public.foo_col1_seq');
>
> to your example makes it work as you wish.
>
I know you're right, but -when dealing with updateable views- doing
that implies to add a lot of time altering views when base table
change, and of course we maybe don't want all views get that values.
--
regards,
Jaime Casanova
(DBA: DataBase Aniquilator ;)