Re: INSERT [IGNORE] INTO TABLE

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: INSERT [IGNORE] INTO TABLE
Дата
Msg-id 200011020338.WAA11211@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: INSERT [IGNORE] INTO TABLE  (Najm Hashmi <najm@mondo-live.com>)
Список 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 по дате отправления:

Предыдущее
От: Petter Reinholdtsen
Дата:
Сообщение: Timespan / interval calculations?
Следующее
От: "Marc Rohloff"
Дата:
Сообщение: Re: Outer Joins