Portál AbcLinuxu, 24. prosince 2025 01:50
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.