| From: | Jean-Christian Imbeault <jc(at)mega-bucks(dot)co(dot)jp> |
|---|---|
| To: | techlist(at)voyager(dot)phys(dot)utk(dot)edu |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Duplicate key insert question |
| Date: | 2003-07-02 00:45:23 |
| Message-ID: | 3F022B23.9030202@mega-bucks.co.jp |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Reuben D. Budiardja wrote:
>
> Hi, not sure if this is answering your question, but I just asked similar
> questions here. I asked about using INSERT WHERE NOT EXISTS (which you can do
> in PostgreSQL). Here is what you can do:
>
> INSERT INTO mytable
> SELECT 'value1', 'value2'
> WHERE NOT EXISTS
> (SELECT NULL FROM mytable
> WHERE mycondition)
>
> http://marc.theaimsgroup.com/?l=postgresql-general&w=2&r=1&s=WHERE+NOT+EXISTS&q=b
Thanks for the link!
I read the thread and it looks like even the above solution is not
perfect because of a possible race condition where two inserts trying to
insert a row with a pk not in the table will both get think it is ok to
do so, try it and then both will fail?
If I followed all the arguments correctly according to the thread there
is *no* way to do what I (and you ;) want in one simple query.
Do you agree? Or did I miss something?
Jean-Christian Imbeault
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Chris Albertson | 2003-07-02 00:45:54 | Re: ERROR: language "c" is not trusted |
| Previous Message | Reuben D. Budiardja | 2003-07-02 00:43:59 | Re: Duplicate key insert question |