RE: [HACKERS] Insert into view
От | Ansley, Michael |
---|---|
Тема | RE: [HACKERS] Insert into view |
Дата | |
Msg-id | 1BF7C7482189D211B03F00805F8527F748C2FD@S-NATH-EXCH2 обсуждение исходный текст |
Ответы |
Re: [HACKERS] Insert into view
|
Список | 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 по дате отправления: