외래 키와 연결된 수십 개의 테이블이있는 데이터베이스가 있습니다. 정상적인 상황에서 이러한 제약 조건의 기본값은 ON DELETE RESTRICT
입니다. 그러나 데이터베이스의 스냅 샷을 컨설턴트와 공유하려고 할 때 중요한 데이터를 제거해야했습니다. DELETE FROM Table CASCADE
명령에 대한 나의 기억이 순수 환각이 아니 었으면 좋겠다.PostgreSQL의 계단식 삭제
나는 그에서 복원도 모든 외래 키 제약 조건을 ON DELETE CASCADE
조항을 추가 내 삭제를 수행의 ON DELETE CASCADE
을 제거, 다시 투기, 그리고 마지막으로 복원하여 덤프를 처리하는 스크립트를 작성, 데이터베이스를 덤프했다 하 고 밖으로 종료 무엇 다시. 그것은 SQL에서 이것을하기 위해 필요한 삭제 쿼리를 작성하는 것보다 쉬웠습니다. 데이터베이스의 전체 조각을 제거하는 것이 정상적인 작업이 아니므로 스키마가 정확하게 적용되지 않았습니다.
누군가 다음번에 더 나은 해결책이 있습니까?
잘라내기를 사용하면 표가 그대로 유지됩니다. 드롭은 테이블 자체를 제거합니다. – Hgehlhausen