Portál AbcLinuxu, 6. května 2025 10:10
SQL_STATEMENT = """ COPY %s FROM STDIN WITH CSV HEADER DELIMITER AS ',' """ dbcur.copy_expert(sql=SQL_STATEMENT % table_name, file=file_object)To funguje, nove soubory se importuji v poradku. Potreboval bych ale nejak udelat to, ze kdyz se pokusim naimportovat soubor ktery obsahuje nejaka nova data a nejaka duplicitni, tak aby se naimportovala pouze ta nova data. Nyni mi import neprobehne vubec kvuli duplicite v Primary Key. Jak by takova vec mela fungovat? Pujde to resit rovnou pri importovani toho souboru? Nebo mozna nejdrive import do nejake pomocne tabulky a nasledne porovnani/updatovani? Na co se mam zamerit? Dekuji. Tom
INSERT INTO … ON CONFLICT DO NOTHING;
insert into tbl_data(primary_key, data)
select ti.primary_key, ti.data
from tbl_import as ti left outer join tbl_data as td on ti.primary_key = td.primary_key
where td.primary_key is null
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.