The proper fix for this is subtransactions, which we will have someday.
You do the INSERT in a subtransaction.
> Edmar Wiggers wrote:
>
> > > If I try to insert some row which in the table already exist the
> > > postgre don't insert it and tell some error. Everything ok.
> > > I'll insert only if there is not the same (same key) record,
> > > else don't insert and don't tell me errors about it.
> > > In MySQL is a switch [IGNORE].
> >
> > Not a good feature for me. What do you do if the record already exists?
> > Update it?
> >
> > Check existence and then insert or update. If you want, I guess you could
> > wrap that inside a stored procedure.
>
> Hi, here is an example of using function using pl/pgsql for inserting and
> checking whether an instance exists or not.....
> CREATE FUNCTION add_new_user(text,text) RETURNS bool AS' DECLARE
> oldUser RECORD;
> USR ALIAS FOR $1;
> PWORD ALIAS FOR $2;
>
> BEGIN
> SELECT INTO oldUser *
> FROM users
> where username=USR AND password= PWORD;
> IF FOUND
> THEN
> RETURN ''f'';
> ELSE
> INSERT INTO USERS(username,password)
> values(USR,PWORD);
> RETURN ''t'';
> END IF;
>
> END;'
> LANGUAGE 'plpgsql';
>
> Regards.
> Najm
>
>
--
Bruce Momjian | http://candle.pha.pa.us
[EMAIL PROTECTED] | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026