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 4892 게시물 읽기
No. 4892
[질문]LargeObject 삭제방법은???
작성자
노동옥
작성일
2003-09-04 11:32
조회수
1,892

 

제가 linux,jboss에 postgres를 사용하며 공부중인대여...

db에 largeObject를 저장하면 oid를 얻어와서 지정한 컬럼에 oid를 저장하는데여

그 oid를 가지고 있는 row를 삭제하면

db에 저장되어있는 largeObject는 자동으로 삭제가 되나여

아니면 따로 largeObject를 삭제해야 하는건가여???

 

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

6.x 이후 large object 놈을 쓸 일이 없어서 관심이 없었는데, 궁금해서 한번 살펴보니까, 6.x 대의 lo 처리 방식이랑 완전히 딴판으로 움직이고 있었네요. :)

 

아무튼 7.3.x 대 버전을 기준으로 이야기하면,

결론부터 이야기하면, lo 지정한 테이블에서 해당 로우를 지운다고 lo 자체가 지워지지는 않네요.

 

자동으로 처리를 하려면, 트리거가 있어야할 듯 싶습니다.

트리거처럼 섬세한 작업이 필요없다면,

 

CREATE RULE r_unlink_lo AS ON DELETE 
    TO worktable
    DO SELECT lo_unlink(old.loid_column)

 

위와 같이 rule을 하나 만들어두셔도 되고요.

그리고, 디비 서버가 돌아가고 있는 시스템의 물리적인 하드디스크 공간 관리를 위한 삭제라면, vacuum도 꼭 필요할 것같네요.

 

자동으로 삭제 되지 않는 이유가 아마 large object를 표한기 위한 자료형이 oid인데, oid 라는 자료형 만으로는 그놈이 large object인지, 아닌지를 판단할 수가 없어서 그런 것같습니다.

김상기(ioseph)님이 2003-09-04 14:02에 작성한 댓글입니다.
이 댓글은 2003-09-04 14:07에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
4902[질문] MS Windows 2000 용 PostgreSQL 은 어디에? [1]
Freeman
2003-09-08
2269
4894[질문] 새로고침시 db connect 수가 증가 합니다 [2]
강성일
2003-09-06
1767
4892[질문]LargeObject 삭제방법은??? [1]
노동옥
2003-09-04
1892
4890윈도우에 postgres 설치시 Administartor로 꼭 시작해야 합니까? [1]
박종선
2003-09-04
5188
4888jdbc 이용시 암호의 보안문제 질문입니다. [2]
유욱종
2003-09-03
1853
4886recycled transaction log file xxx 의 우리말
김상기
2003-09-03
1664
4884postgres 윈도우 설치방법을 가르쳐 주세요. [2]
박종선
2003-09-03
2517
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다