윈 토토 9.3.25 문서화 | ||||
---|---|---|---|---|
이전 | PostgreSQL : 문서 : 9.3 : 추가 제공 배트맨 토토 | 부록 F. 추가 제공된 모듈 | 다음 |
thelo모듈은 지원을 제공합니다
큰 물체 관리 (LOS 또는 Blobs라고도 함). 여기에는 a가 포함됩니다
데이터 유형lo및 트리거lo_manage
.
JDBC 드라이버의 문제 중 하나 (그리고 이것은 ODBC 드라이버)는 사양이이를 가정합니다 Blobs (이진 큰 물체)에 대한 참조는 테이블 및 해당 항목이 변경되면 관련 블로브가 삭제됩니다. 데이터베이스에서.
as윈 토토스탠드입니다 발생하지 않습니다. 큰 물체는 그들 자신의 물체로 취급됩니다 오른쪽; 테이블 항목은 OID로 큰 물체를 참조 할 수 있지만 동일한 큰 개체를 참조하는 여러 테이블 항목 일 수 있습니다. OID, 따라서 시스템이 큰 객체를 삭제하지 않기 때문에 그러한 항목을 변경하거나 제거하십시오.
이제 이것은 괜찮습니다윈 토토-특이 적 응용 프로그램이지만 표준 JDBC 또는 ODBC를 사용하는 코드는 객체를 삭제하지 않아 고아 객체 - 무엇이든 참조되지 않은 객체, 단순히 디스크 공간을 차지합니다.
lo모듈은 이것을 해결할 수 있습니다
LO 참조 열이 포함 된 테이블에 트리거를 연결합니다.
트리거는 본질적으로 a를 수행합니다.lo_unlink
값을 삭제하거나 수정할 때마다
큰 물체를 참조합니다. 이 트리거를 사용하면 당신은입니다
큰 데이터베이스 참조가 하나만 있다고 가정하면
트리거 제어 열에서 참조되는 개체!
모듈도 데이터 유형을 제공합니다lo, 정말의 도메인 일뿐입니다.OID타입. 이것은 고정 된 데이터베이스 열을 차별화하는 데 유용합니다 다른 것들의 Oids 인 사람들의 큰 대상 참조. 당신은를 사용할 필요가 없습니다lo트리거이지만, 그것을 사용하는 것이 편리 할 수 있습니다. 데이터베이스의 열은 당신이있는 큰 객체를 나타냅니다. 트리거로 관리합니다. 또한 ODBC 운전자가 소문이 있습니다 사용하지 않으면 혼란스러워loblob 열.
여기에 간단한 예제가 있습니다 :
테이블 이미지 생성 (제목 텍스트, 래스터 LO); 업데이트 전에 Trigger T_Raster를 작성하거나 이미지에서 삭제하십시오 각 행마다 실행 절차 lo_manage (래스터);
11401_11482업데이트 또는 삭제 전트리거, 열 이름을 유일한 트리거 인수로 제공하십시오. 너 또한 트리거가 업데이트에서만 실행하도록 제한 할 수 있습니다. 사용하여 열업데이트 전 column_name. 여러분이 필요하다면lo같은 테이블의 열을 작성하십시오 다른 이름을 기억하는 것을 기억하면서 각각에 대한 별도의 트리거 같은 테이블의 각 방아쇠에.
테이블을 떨어 뜨리는 것은 여전히 포함하는 모든 물체를 고아합니다. 트리거가 실행되지 않습니다. 앞서 앞서 피할 수 있습니다.드롭 테이블with삭제 에서테이블.
Truncate동일한 위험이 있습니다.
이미 가지고 있거나 의심되는 경우, 고아가 큰
물체, 참조Vacuumlo청소에 도움이되는 모듈.
실행하는 것이 좋습니다Vacuumlo때때로 가끔 뒷면으로lo_manage
트리거
일부 프론트 엔드는 자신의 테이블을 만들 수 있으며 관련 방아쇠. 또한 사용자는 기억하지 못하거나 알고있을 수 있습니다. 트리거를 만들려면
피터 마운트<peter@retep.org.uk