Search Postgresql Archives

Re: insert into a view?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 03, 2006 at 10:02:17AM -0700, Karen Hill wrote:
> 
> Tom Lane wrote:
> 
> Thanks Tom,
> 
> I tried it and it worked.  Is it possible to do something a bit more
> complex?  Can you use rules to insert into a view that has multiple
> tables as the source?  For example:
> 
> CREATE VIEW v AS SELECT * FROM t1, t2 WHERE t1.num = t2.num;

Not related directly to your issue, but you may find that explicit
JOINs help are easier to debug and maintain, as in:

CREATE VIEW v AS
SELECT t1.*, t2.foo, t2.bar
FROM
    t1
JOIN
    t2
    ON (t1.num = t2.num);

> Would the rule for the above look something like this?
> 
> CREATE RULE r AS ON INSERT INTO t1, t2 WHERE t1.num = t2.num DO INSTEAD
> INSERT INTO t1 , t2 VALUES (new.*);

More like this:

CREATE RULE r AS
    ON INSERT INTO v
    DO INSTEAD (
        INSERT INTO t1 VALUES (NEW.num, NEW.baz, NEW.blur, NEW.quux);
        INSERT INTO t2 VALUES (NEW.num, NEW.foo, NEW.bar);
    );

HTH :)

Cheers,
D
-- 
David Fetter <david@xxxxxxxxxx> http://fetter.org/
phone: +1 415 235 3778        AIM: dfetter666
                              Skype: davidfetter

Remember to vote!


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux