Hi Got question birstdb=# \d csischema.dim_company Table "csischema.dim_company" Column | Type | Modifiers -----------------+-----------------------------+----------- company_id | integer | not null company_name | character varying(100) | city | character varying(100) | state | character varying(100) | postal_code | character varying(100) | country | character varying(100) | latitude | double precision | longitude | double precision | update_datetime | timestamp without time zone | company_source | character varying(1) | Indexes: "dim_company_pkey" PRIMARY KEY, btree (company_id) birstdb=# \d IVEE.dim_company Table "ivee.dim_company" Column | Type | Modifiers -----------------+-----------------------------+----------- company_id | integer | company_name | character varying(100) | city | character varying(100) | state | character varying(100) | postal_code | character varying(100) | country | character varying(100) | latitude | double precision | longitude | double precision | update_datetime | timestamp without time zone | company_source | character varying(1) | insert into csischema.dim_company select * from IVEE.dim_company on conflict (company_id) do update SET company_name = EXCLUDED.company_name , city = EXCLUDED.city , state = EXCLUDED.state , postal_code = EXCLUDED.postal_code , country = EXCLUDED.country , latitude = EXCLUDED.latitude , longitude = EXCLUDED.longitude , update_datetime = EXCLUDED.update_datetime , company_source = EXCLUDED.company_source; QUERY PLAN --------------------------------------------------------------------------------------- Insert on dim_company (cost=0.00..188.32 rows=1232 width=1126) Conflict Resolution: UPDATE Conflict Arbiter Indexes: dim_company_pkey -> Seq Scan on dim_company dim_company_1 (cost=0.00..188.32 rows=1232 width=1126) (4 rows) so how is it working in fact ? Isn't it working like looping in the IVEE.dim_company and for each company_id if the record does have a correspondent in csischema.dim_company then update csischema.dim_company set company_name = EXCLUDED.company_name where company_id=... ? If so isn't it supposed to use the PK for each company_id ? Or is it more like building a whole list from IVEE.dim_company and treat like a join ? Just trying to understand Thanks Armand |