Forked from seanbehan/bulk-upsert-from-temporary-table.sql
Created
April 18, 2016 19:05
-
-
Save sagivo/df9d90a7d9da85d9bf2d5639d28829e1 to your computer and use it in GitHub Desktop.
Perform an "upsert" from CSV file using Postgres copy command #sql #psql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
create temporary table temp (symbol varchar(255), open decimal, high decimal, low decimal, close decimal, volume varchar(255), date date ); | |
create table if not exists stocks (id serial primary key, symbol varchar(255), open decimal, high decimal, low decimal, close decimal, volume varchar(255), date date, created_at timestamp, updated_at timestamp); | |
copy temp (symbol, date, open, high, low, close, volume) from '/path/to/file.csv' with delimiter ',' csv header; | |
delete from stocks using temp where stocks.date = temp.date and stocks.symbol = temp.symbol; | |
insert into stocks (symbol, open, high, low, close, volume, date) select symbol, open, high, low, close, volume, date from temp; | |
drop table temp; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment