Thread: views and rules

views and rules

From
Michiel Lange
Date:
Hello folks,

I hoped to be a smart-*ss, so I created a nice view to view a specific part
of my table with joins from another table,
but when I tried to edit the data, I got the message that I needed a good
ruleset... what does that mean? what kind of rules does it mean? I cannot
create rules on views... only on tables...

Can someone help me out?



Re: views and rules

From
Tom Lane
Date:
Michiel Lange <michiel@minas.demon.nl> writes:
> I cannot create rules on views

Sure you can.  Here's a trivial example.  This lets a user of view
"bar" see a subset of rows in "foo", update only some fields of
those rows, and not insert or delete anything:

regression=# create table foo (f1 int, f2 text);
CREATE TABLE
regression=# create view bar as select * from foo where f1 < 100;
CREATE VIEW
regression=# create rule bar_update as on update to bar do instead
regression-# update foo set f2 = new.f2 where f1 = old.f1;
CREATE RULE
regression=# insert into foo values(1,'ok');
INSERT 547779 1
regression=# insert into foo values(101, 'u cant see me');
INSERT 547780 1
regression=# select * from bar;
 f1 | f2
----+----
  1 | ok
(1 row)

regression=# update bar set f1 = f1+1, f2 = f2 || ' added';
UPDATE 1
regression=# select * from bar;
 f1 |    f2
----+----------
  1 | ok added
(1 row)

regression=# select * from foo;
 f1  |      f2
-----+---------------
 101 | u cant see me
   1 | ok added
(2 rows)


If you wanted to allow inserts or deletes via the view, you'd write
additional rules for that.

            regards, tom lane

switching databases

From
"Adler, Stephen"
Date:
Is there a way to switch databases within psql like there is
in mysql using the 'use' command?

I have two databases, one named test, the other name data, if
I do 'psql test' I'm connected to the test database, to connect
to the data database, I have to quite psql then run the command
'psql data'. It would be nice not to have to quit out of psql.

Thanks. Steve.


Re: switching databases

From
Ewald Geschwinde
Date:
\c [DATABASE]

\? for help


Adler, Stephen schrieb:

>Is there a way to switch databases within psql like there is
>in mysql using the 'use' command?
>
>I have two databases, one named test, the other name data, if
>I do 'psql test' I'm connected to the test database, to connect
>to the data database, I have to quite psql then run the command
>'psql data'. It would be nice not to have to quit out of psql.
>
>Thanks. Steve.
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 5: Have you checked our extensive FAQ?
>
>http://www.postgresql.org/users-lounge/docs/faq.html
>
>
>
>



Re: switching databases

From
Tom Lane
Date:
"Adler, Stephen" <adler@bnl.gov> writes:
> I have two databases, one named test, the other name data, if
> I do 'psql test' I'm connected to the test database, to connect
> to the data database, I have to quite psql then run the command
> 'psql data'. It would be nice not to have to quit out of psql.

\c data

            regards, tom lane