database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 9341 게시물 읽기
No. 9341
PostgreSQL을 사용하면서
작성자
퓨전마법사(pjm187)
작성일
2013-09-15 00:36
조회수
10,281

처음으로 닷넷으로 이런 디비가 다 있나 하는 생각에 처음 사용을 해보고 있습니다.

쓰면서 이런 DB가 진짜 꽁짜야 라는 생각으로 즐겁게 사용하고 있습니다 툴도 좋구.

사용하면서  많이 느끼는데 아직 부족하구 제대로 활용을 못하고 있는거겠죠.. 그러면서 지금 뭔가 좀 발전적으로 쓰고 싶어서 많은 자료를 찾아보고 있는데요..

좀 찾기가 힘드네요.. Q/A 179페이지까지 갔다가 결국 글을 씁니다

혹시 이런게 되나요? MS SQL 에 많이 쓴 방식인데요

DECLARE @tempCol varchar(50)

SET @tempCol = SELECT col1 FROM t_agent WHERE userid='1234'

또는 SELECT @tempCol  = col1 FROM t_agent WHERE userid='1234'

이렇게도 돼겠죠..

 IF(@tempCol = '')
BEGIN
        UPDATE ~~~~~ 무슨 작업
END
ELSE
BEGIN
      INSERT INTO ~~~~ 무슨 작업..
END

 

이렇게 한 묶음으로 쿼리문을 만들어서 던져주고 싶은데
(이렇게 안하면 디비에 2번 왔다 갔다 해야해서요~~)

혹시 이걸 PostgreSQL에서는 어떻게 구현해야하는지 좀 알려주시기 발바니다.

프로시져로 만들면될꺼라고 생각하는데.. 혹시 프로시져 말고 쿼리문으로 어떻게 안될까요?

 

부탁드리겠습니다.

차라리 안돼면 자료를 찾아보지도 않을텐데 말이죠..

 

 

이 글에 대한 댓글이 총 1건 있습니다.

통상 그런 쿼리를 upsert라는 용어로 불리더군요. 

오라클에서는 merge라는 구문으로 그 기능을 구현하는데, 

ms-sql에서도 위와 같이 tsql 프로시져형태로 만들어진다면, 

직열성 문제는 그대로 남아있습니다. 

자세한 이야기는 

http://database.sarang.net/?inc=read&aid=8994&criteria=pgsql&subcrit=&id=&limit=20&keyword=upsert&page=1

페이지에서 다루고 있습니다. 

자료의 직렬성 문제가 그리 치명적인 문제가 되지 않는 자료구조라면, 윗 게시물에서 언급하고 있는 with 구문으로 처리하는 것도 한 방법이기는 합니다만, 

 

현재로써는 작업전 table lock 빼고는 달리 방법이 안보이는 상태입니다. 

 

김상기(ioseph)님이 2013-09-16 09:23에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9344pg_advisory_lock 사용 [1]
신동선
2013-09-23
10612
9343백업 후 완전 동일한 복구 관련...문의.. [2]
김성환
2013-09-17
10039
9342전체백업 및 복구시 완전히 동일하게 복구하려면... [3]
김성환
2013-09-16
9901
9341PostgreSQL을 사용하면서 [1]
퓨전마법사
2013-09-15
10281
9340전체백업 및 복원 문의 [2]
김성환
2013-09-13
9919
9339Postgresql 9.2 에서 EXPLAIN ANALYZE 수행 시간 관련입니다. [1]
이야기
2013-09-12
10886
93388.2 버젼과 8.3 버젼에서의 속도차이 테스트중 ^^ 현상질문입니다. ^^ [2]
롱다리
2013-09-11
9440
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다