Thread: AW: ask for help !!! (emergency case)

AW: ask for help !!! (emergency case)

From
Zeugswetter Andreas SB
Date:
> I hava 2 problems about view
> 1. i can't insert into view

> I try to insert into view as following
> create table t1 (id int,name varchar(12) check(id<=10));
> create table t2 (id int,name varchar(12) check(id>10));
> create view v1 as select * from t1,t2;

This is not an updateable view in any database product.
It is a cartesian product join of t1 and t2.

You probably wanted:
create view v1 as 
select * from t1
union all
select * from t2;

> insert into v1 values(1,'wan1');
> insert into v1 values(12,'wan12');
> 
> it does not show any problem but it doen't have data in table 
> t1 and table t2

Version 7.1 will give you an error if you don't create an appropriate
insert and update rule for the view.

Insert and update rules are not yet automatically created for views.

Andreas


Re: AW: ask for help !!! (emergency case)

From
Tom Lane
Date:
Zeugswetter Andreas SB  <ZeugswetterA@wien.spardat.at> writes:
> You probably wanted:
> create view v1 as 
> select * from t1
> union all
> select * from t2;

Probably, but we don't support UNION in views before 7.1 :-(

I'm not real clear on why t1 and t2 are separate tables at all in this
example.  Seems like making v1 be the real table, and t1 and t2 be
selective views of it, would work a lot easier.
        regards, tom lane