From: | Bob Pawley <rjpawley(at)shaw(dot)ca> |
---|---|
To: | Postgre General <pgsql-general(at)postgresql(dot)org> |
Subject: | Duplicate rows |
Date: | 2005-11-12 21:00:50 |
Message-ID: | 00a401c5e7cc$29ffc5e0$ac1d4318@OWNER |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
I have the following expression working in that the process.fluid_id is transfereed to pipe.fluid_id when the column - process.contain has a value of 'ip'.
There is no transfer when the contain column holds other values. Success - so far.
How do I keep the table pipe from being populated with duplicate rows? Among other reasons not to have duplicate rows, I want to make pipe.fluid_id a primary key.
Bob
CREATE TABLE pipe ( fluid_id int4 NOT NULL);
CREATE TABLE process( fluid_id int4 NOT NULL, process varchar, contain varchar) ;
create or replace function base() returns trigger as $$
DECLARE
myrow RECORD;
BEGIN
for myrow in select * from process where contain = 'ip' loop
insert into pipe(fluid_id) values (myrow.fluid_id);
if not found then
do nothing ;
end if;
end loop;
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 ('1', 'water3', 'ip');
From | Date | Subject | |
---|---|---|---|
Next Message | Reko Turja | 2005-11-13 02:10:35 | Re: Wikipedia help requested, especially non-English speakers |
Previous Message | Randal L. Schwartz | 2005-11-12 20:14:58 | Re: [GENERAL] Wikipedia help requested, especially non-English speakers |