Where

From: Bob Pawley <rjpawley(at)shaw(dot)ca>
To: Postgre General <pgsql-general(at)postgresql(dot)org>
Subject: Where
Date: 2005-11-10 22:24:23
Message-ID: 027101c5e645$81596ae0$ac1d4318@OWNER
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I am attempting to transfer the data in the fluid_id column of table process into column fluid_id of table pipe.

This should happen only when column contain of table process holds the value 'ip'.

Here is the command that I am having trouble with.
-------
create table process (fluid_id integer primary key, process varchar, contain varchar);

create table pipe ( fluid_id integer not null, contain varchar);

create or replace function base() returns trigger as $$

begin

insert into pipe (fluid_id) values (new.fluid_id);

select * into pipe from process where contain = 'ip';

return null;

end;

$$ language plpgsql;

create trigger trig1 after insert on process

for each row execute procedure base();

insert into process (fluid_id, process, contain)

values ('2', 'water', 'ip');

-------------------
On inserting data this error comes back -
-------
ERROR: relation "pipe" already exists
CONTEXT: SQL statement "SELECT * INTO pipe from process where contain = 'ip'"
PL/pgSQL function "base" line 4 at SQL statement
------
Of course the table pipe does already exist - it is a permanent table.

Is the program looking for some other target?? Perhaps a temporary table??

Or am I completely screwed up???

Bob

Responses

  • Re: Where at 2005-11-10 23:34:34 from Uwe C. Schroeder

Browse pgsql-general by date

  From Date Subject
Next Message oayasli 2005-11-10 22:33:36 table copy
Previous Message Michael Schuerig 2005-11-10 22:18:26 Re: Ordering and unicode