Re: INSERT [IGNORE] INTO TABLE - Mailing list pgsql-sql

From Bruce Momjian
Subject Re: INSERT [IGNORE] INTO TABLE
Date
Msg-id 200011020338.WAA11211@candle.pha.pa.us
Whole thread Raw
In response to Re: INSERT [IGNORE] INTO TABLE  (Najm Hashmi <najm@mondo-live.com>)
List pgsql-sql
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 pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


pgsql-sql by date:

Previous
From: Petter Reinholdtsen
Date:
Subject: Timespan / interval calculations?
Next
From: "Marc Rohloff"
Date:
Subject: Re: Outer Joins