From: | Bartosz Dmytrak <bdmytrak(at)eranet(dot)pl> |
---|---|
To: | Piyush Lenka <lenka(dot)piyush(at)gmail(dot)com> |
Cc: | Alessandro Gagliardi <alessandro(at)path(dot)com>, pgsql-novice(at)postgresql(dot)org |
Subject: | Re: Postgres restore help |
Date: | 2012-02-28 20:13:11 |
Message-ID: | CAD8_UcZA9YpW6sHbth+vVt9GVYiLzd76cxE6+s-3G0ztE9H0BA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
This is almost perfect :)
but won't work in that case in the way You expect, because of join type.
This should be LEFT JOIN to select all from temp_table (left) and matching
from main_table (right), then WHERE clausule will filter rows not existing
in main_table. Without USING, which is shorthand (
http://www.postgresql.org/docs/9.1/static/sql-select.html#SQL-FROM) it
should look like this:
INSERT INTO main_table
SELECT temp_table.*
FROM temp_table
*LEFT JOIN* main_table ON (temp_table.pk = main_table.pk) /* instead
of "ON (...)" you can use Alessandro's shorthand: "USING (pk)"*/
WHERE main_table.pk IS NULL;
Regards,
Bartek
2012/2/28 Alessandro Gagliardi <alessandro(at)path(dot)com>
> I would recommend restoring the table to a temporary table and then using
> something like:
> INSERT INTO main_table SELECT temp_table.* FROM temp_table JOIN main_table
> USING (pk) WHERE main_table.pk IS NULL
> Someone else here might have a more efficient way of phrasing that insert
> statement (I'm still fairly new to the concept of anti-joins). But I think
> something like this should work for you.
>
> -Alessandro
>
> On Tue, Feb 28, 2012 at 7:34 AM, Piyush Lenka <lenka(dot)piyush(at)gmail(dot)com>wrote:
>
>> Hi,
>> I m trying to restore only data from a backup file.but i hav some primary
>> key that already exists in the table.
>> *I want to restore non duplicate data only.*
>> *Please Help.*
>> *
>> *
>> Thanks And Regards
>> Piyush
>>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alessandro Gagliardi | 2012-02-28 21:34:54 | Re: Postgres restore help |
Previous Message | Alessandro Gagliardi | 2012-02-28 18:30:19 | Re: Postgres restore help |