Re: Inserting Data

Поиск
Список
Период
Сортировка
От Bob Pawley
Тема Re: Inserting Data
Дата
Msg-id 008801c6c703$650d7d50$8e904618@owner
обсуждение исходный текст
Ответ на Inserting Data  (Bob Pawley <rjpawley@shaw.ca>)
Ответы Re: Inserting Data  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
I thought the NEW qualified the select.

If not, how is select qualified??

Thanks

Bob



----- Original Message -----
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Bob Pawley" <rjpawley@shaw.ca>
Cc: "Michael Fuhr" <mike@fuhr.org>; "Postgresql"
<pgsql-general@postgresql.org>
Sent: Wednesday, August 23, 2006 3:18 PM
Subject: Re: [GENERAL] Inserting Data


> Bob Pawley <rjpawley@shaw.ca> writes:
>> Perhaps we can look at the following as a simple example of what is
>> happening-
>
>> ---------
>> create or replace function loop_association() returns trigger as $$
>>  begin
>
>>  Insert Into p_id.loops (monitor)
>>  select new.devices_id
>>  from p_id.devices ;
>
>>  return null ;
>>  end ;
>>  $$ language plpgsql ;
>
>>  create trigger loop after insert on p_id.devices
>>  for each row execute procedure loop_association();
>> ------
>
>> This trigger and procedure gives a single row on the first insert on an
>> otherwise blank table. However it produces two identical rows of the
>> second
>> device_id on the second insert and three identical rows of the third
>> device_id on the third insert. (This is the only trigger on the table)
>
> Well, of course, because that's an unqualified "select", so each call
> will copy *all* of p_id.devices into p_id.loops.  Methinks what you
> really want is to insert the NEW row, not the whole table.
>
> regards, tom lane


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Inserting Data
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Inserting Data