Skip to content

Instantly share code, notes, and snippets.

@lokori
Last active April 28, 2016 07:34
Show Gist options
  • Save lokori/f3b9903d5f9a562b0c248f2a2e2bfbaa to your computer and use it in GitHub Desktop.
Save lokori/f3b9903d5f9a562b0c248f2a2e2bfbaa to your computer and use it in GitHub Desktop.
-- PostgreSQL does not have merge (insert if not exists). A pattern to easily insert multiple rows of data.
CREATE TABLE rahoitusmuoto_tmp
(
rahoitusmuotoid INT NOT NULL ,
rahoitusmuoto VARCHAR(80) NOT NULL
);
insert into rahoitusmuoto_tmp (rahoitusmuotoid, rahoitusmuoto) values (1, 'valtionosuus');
insert into rahoitusmuoto_tmp (rahoitusmuotoid, rahoitusmuoto) values (2, 'oppisopimus');
insert into rahoitusmuoto_tmp (rahoitusmuotoid, rahoitusmuoto) values (3, 'tyovoimapoliittinen');
insert into rahoitusmuoto_tmp (rahoitusmuotoid, rahoitusmuoto) values (4, 'henkilostokoulutus');
insert into rahoitusmuoto_tmp (rahoitusmuotoid, rahoitusmuoto) values (5, 'ei_rahoitusmuotoa');
-- single statement to merge all.
insert into rahoitusmuoto (rahoitusmuotoid, rahoitusmuoto)
select rahoitusmuotoid, rahoitusmuoto from rahoitusmuoto_tmp r_tmp
where not exists (select 1 from rahoitusmuoto rr where rr.rahoitusmuotoid = r_tmp.rahoitusmuotoid);
drop table rahoitusmuoto_tmp;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment