2013-10-23 2 views
-1

DELETE FROM <table_name>을 실행하면 참조 무결성을 유지하면서 성공할 수 있도록 PostgreSQL에 테이블을 정렬하는 빠르고 효율적인 방법이 있는지 궁금합니다.잘린 무결성 테이블의 참조 무결성 목록

예. 테이블이 USER -->* ACCOUNT -->* TRANSACTION 인 경우 다른 트랜잭션이 외래 키 관계를 손상시킬 수 있으므로 먼저 TRANSACTION을 삭제 한 다음 ACCOUNT를 삭제하고 USER를 삭제하려고합니다.

나는 시스템 테이블을 쿼리하고 일부 스크립팅 언어의 메모리에 참조 무결성 트리를 작성하여 다른 DB와 함께이 작업을 수행했습니다. 그러나 나는 그런 목록을 만드는 빠른 방법이 있는지 궁금해하고 있었다.

+0

제목에'truncate'라고 쓰여 있지만 게시물 자체에'delete'라고 쓰여 있습니다 - 어느 것을 사용할 것입니까? – Mureinik

+0

중요합니까? 최종 결과는 동일하며, 모든 데이터를 지우고 빈 스키마를 가지고 있습니다. – amphibient

+0

FK를 사용하기를 원했기 때문에 'TRUNCATE TABLE users CASCADE'를 수행하고 순서에 대해 걱정할 필요가 없습니다. – Mureinik

답변

0

계단식으로 삭제하는 외래 키를 정의하는 방법은 없으므로이를 수행 할 필요가 없습니다.

+0

이 질문에 대한 대답이 아니므로 – amphibient

+0

에 대한 답변이 더 적절합니다. RDBMS 공급 업체가 이미 자동화 한 작업에 대한 수동 방법론을 요구하고 있습니다. –

+0

@ amphibient : 설명서에 대한 더 많은 정보와 링크가 있으면 좋지만 적절한 해결책입니다. –