Re: inserting to a multi-table view

Поиск
Список
Период
Сортировка
От Michael Shulman
Тема Re: inserting to a multi-table view
Дата
Msg-id c3f821000806170758q6321b0c1h564b81d1c7ee301b@mail.gmail.com
обсуждение исходный текст
Ответ на Re: inserting to a multi-table view  (Klint Gore <kgore4@une.edu.au>)
Ответы Re: inserting to a multi-table view  (Klint Gore <kgore4@une.edu.au>)
Список pgsql-general
On Tue, Jun 17, 2008 at 3:46 AM, Klint Gore <kgore4@une.edu.au> wrote:
> The only way I could find to make this work is to use a rule and wrap the
> inner "insert returning" in a function.

Thanks, this works!  Although it feels like something of a hack;
shouldn't there be a more elegant solution?

Also, I don't understand why

> create rule atest as on insert to studentinfo do instead (
>  insert into student (person_id) select (select person_id from newperson(new));
> );

is necessary; what is wrong with

create rule atest as on insert to studentinfo do instead (
 insert into student (person_id) select person_id from newperson(new);
);

?  (Other than the evident fact that it doesn't work; the error
message "function expression in FROM cannot refer to other relations
of same query level" is not illuminating to me.)


Additionally, is there a reason why you put one of the inserts in the
function and the other in the rule?  Why not have the function do both
inserts and then the rule just invoke the function?

Mike

В списке pgsql-general по дате отправления:

Предыдущее
От: "Albe Laurenz"
Дата:
Сообщение: Re: Error when trying to drop a tablespace
Следующее
От: Pavel Arnošt
Дата:
Сообщение: Re: problem with to_ascii() function in version 8.3.3