novice wrote:
I am trying to record the following entries into a table. I'm curious to know if there's an efficient/effective way of doing this? This entries come from an ancient datalogger (note: separated by space and uses YY/MM/DD format to record date) Plain file sample.dat 3665 OK BS 07/08/16 07:28 3665 CC BS 07/08/16 07:29 3665 CS BS 07/08/16 07:29 3665 CS BS 07/08/16 07:29 4532 OK BS 07/08/16 07:34 4004 OK BS 07/08/16 07:51 3991 OK BS 07/08/16 07:54 This is the table that I'm adding the entries to CREATE TABLE maintenance ( maintenance_id SERIAL PRIMARY KEY, meter_id integer, status text, inspector text, inspection_date timestamp with time zone, )
If your on unix, why not use those tools first? awk '{print $1 "\t" $2 "\t" $3 "\t" $4 " " $5}' sample.dat > sample.tab -- Begin SQL script CREATE TEMP TABLE maintenance_tmp ( meter_id integer, status text, inspector text, inspection_date timestamp with time zone ); SET datestyle='ymd'; \copy maintenance_tmp FROM sample.tab INSERT INTO maintenance (meter_id, status, inspector, inspection_date) SELECT DISTINCT meter_id, status, inspector, inspection_date FROM maintenance_tmp ORDER BY inpsection_date; ANALYZE maintenance; -- End SQL Script [snip]
Any thoughts and suggestions welcome. ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend
---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster