Programming/Postgresql3 postgresql merge(upsert) 구현하기 postgresql merge(upsert+delete) 구현하는 방법이다. 이걸 1트랜잭션으로 묶거나 프로시저나 펑션 등으로 호출하면 된다. lock table test_tbl in exclusive mode; delete from test_tbl where not exists ( select 1 from tmp_test_tbl where test_tbl.pk = tmp_test_tbl.pk ) ; update test_tbl set pk = tmp_test_tbl.pk , c1 = tmp_test_tbl.c1 , c2 = tmp_test_tbl.c2 , c3 = tmp_test_tbl.c3 from tmp_test_tbl where test_tbl.pk = tmp_test_tbl.pk ; insert.. 2019. 7. 27. Postgresql lock 쿼리 확인 및 kill하기 -- postgresql lock 쿼리 및 테이블 확인 select t.relname ,l.locktype ,page ,virtualtransaction ,pid ,mode ,granted from pg_locks l, pg_stat_all_tables t where l.relation=t.relid order by relation asc; --lock 쿼리 kill하기 select pg_cancel_backend('pid'); 2019. 6. 21. Postgresql 현재 실행중인 쿼리 확인 및 kill 하기 -- 실행중인 쿼리 확인하기 SELECT * FROM pg_stat_activity ORDER BY query_start ASC; -- 현재 실행중인 쿼리 kill 하기 SELECT pg_cancel_backend(pid int); -- 성공시 true, 실패시 false 반환 2019. 6. 15. 이전 1 다음