RE: [HACKERS] Insert into view - Mailing list pgsql-hackers

From Ansley, Michael
Subject RE: [HACKERS] Insert into view
Date
Msg-id 1BF7C7482189D211B03F00805F8527F748C2FD@S-NATH-EXCH2
Whole thread Raw
Responses Re: [HACKERS] Insert into view
List pgsql-hackers
I think this was covered a little while back, but it runs something like
this:  a view is a relation, with a select rule (which is the view query).
When you insert into the view (which, like I said, is just another relation,
it actually inserts into the view relation.  However, when you select from
it, of course, the select rule fires, and you don't see any of the
information.  I suppose you could set up a nice insert rule to insert into
the base tables of the query if you wanted.  I normally do this through
stored procs, but this would be essentially the same thing, just nicer
client-side SQL.

I suppose that views could be made so that a tuple insert would fail, but
you should know your db better ;-)

MikeA

>> -----Original Message-----
>> From: Theo Kramer [mailto:theo@flame.co.za]
>> Sent: Tuesday, November 30, 1999 12:25 PM
>> To: hackers@postgreSQL.org
>> Subject: [HACKERS] Insert into view
>> 
>> 
>> Any thoughts on the following
>> 
>> ------------------------------ testview.sql
>> -------------------------------------
>> drop table testhead; /* If it exists */
>> drop table testline; /* If it exists */
>> drop view testview; /* If it exists */
>> 
>> create table testhead (
>>   part text
>> );
>> 
>> create table testline (
>>   part text,
>>   colour text,
>>   adate datetime default 'now'
>> );
>> 
>> create view testview as
>>   select testhead.part, testline.colour, testline.adate from 
>> testhead, testline
>>   where testhead.part = testline.part;
>> 
>> insert into testview values  ('pen', 'green');
>> insert into testview values  ('pen', 'blue');
>> insert into testview values  ('pen', 'black');
>> 
>> select * from testview;
>> 
>> -------------------------------------------------------------
>> ----------------------
>> 
>> The inserts report no errors, and when looking into 
>> $PGDATA/base/mydb/testview
>> with a hex editor I can see the values inserted. 
>> 
>> The select on view returns nothing... 
>> 
>> Should the insert not fail seeing that views are read only ?
>> 
>> -- 
>> --------
>> Regards
>> Theo
>> 
>> ************
>> 


pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: [HACKERS] sort on huge table
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] Insert into view