retain the id number in the json rec, and order by id asc before inserting to trans. if mult records per key, this helps sort
This commit is contained in:
parent
2190f55acb
commit
f0838b28c0
12
srce.pgsql
12
srce.pgsql
@ -18,7 +18,7 @@ BEGIN
|
||||
--unwrap the schema definition array
|
||||
LEFT JOIN LATERAL jsonb_populate_recordset(null::tps.srce_defn_schema, defn->'schema') prs ON TRUE
|
||||
WHERE
|
||||
srce = 'PNCC'
|
||||
srce = 'PNCL'
|
||||
GROUP BY
|
||||
srce;
|
||||
|
||||
@ -35,7 +35,7 @@ BEGIN
|
||||
----------------------------------------------------do the insert-------------------------------------------------------------------------------------------
|
||||
|
||||
--the column list needs to be dynamic forcing this whole line to be dynamic
|
||||
_t := format('COPY csv_i (%s) FROM ''C:\Users\ptrowbridge\downloads\transsearchcsv.csv'' WITH (HEADER TRUE,DELIMITER '','', FORMAT CSV, ENCODING ''SQL_ASCII'',QUOTE ''"'');',_c);
|
||||
_t := format('COPY csv_i (%s) FROM ''C:\Users\ptrowbridge\downloads\llcol.csv'' WITH (HEADER TRUE,DELIMITER '','', FORMAT CSV, ENCODING ''SQL_ASCII'',QUOTE ''"'');',_c);
|
||||
|
||||
--RAISE NOTICE '%', _t;
|
||||
|
||||
@ -55,21 +55,21 @@ WITH pending_list AS (
|
||||
(ae.e::text[])[1], --the key name
|
||||
(row_to_json(i)::jsonb) #> ae.e::text[] --get the target value from the key from the csv row that has been converted to json
|
||||
) json_key,
|
||||
row_to_json(i)::JSONB - 'id' rec,
|
||||
row_to_json(i)::JSONB rec,
|
||||
srce,
|
||||
--ae.rn,
|
||||
id
|
||||
FROM
|
||||
csv_i i
|
||||
INNER JOIN tps.srce s ON
|
||||
s.srce = 'PNCC'
|
||||
s.srce = 'PNCL'
|
||||
LEFT JOIN LATERAL JSONB_ARRAY_ELEMENTS_TEXT(defn->'unique_constraint'->'fields') WITH ORDINALITY ae(e, rn) ON TRUE
|
||||
GROUP BY
|
||||
i.*,
|
||||
srce,
|
||||
id
|
||||
ORDER BY
|
||||
id
|
||||
id ASC
|
||||
)
|
||||
------results of an insert operation--------------
|
||||
, inserted AS (
|
||||
@ -85,6 +85,8 @@ WITH pending_list AS (
|
||||
AND t.rec @> pl.json_key
|
||||
WHERE
|
||||
t IS NULL
|
||||
ORDER BY
|
||||
id ASC
|
||||
----this conflict is only if an exact duplicate rec json happens, which will be rejected
|
||||
----therefore, records may not be inserted due to ay matches with certain json fields, or if the entire json is a duplicate, reason is not specified
|
||||
RETURNING *
|
||||
|
Loading…
Reference in New Issue
Block a user