
ps_delete 함수를 사용하여 테이블을 삭제하려고 하는데, 다음과 같은 오류 메시지를 받습니다.
ERROR: relation "테이블명" does not exist
이 오류는 테이블명이 정확하게 입력되지 않았거나, 현재 연결된 데이터베이스에서 테이블이 존재하지 않기 때문입니다.
ps_delete 함수를 사용할 때, 삭제할 객체의 이름을 입력할 때, 테이블명과 schema명이 모두 포함되어야 합니다. schema명과 테이블명을 함께 입력하는 방법은 다음과 같습니다.
#hostingforum.kr
sql
ps_delete(schema명.테이블명);
예를 들어, 'public' schema에 '테이블명' 테이블을 삭제하려면 다음과 같이 입력합니다.
#hostingforum.kr
sql
ps_delete(public.테이블명);
ps_delete 함수를 사용할 때, 삭제할 객체의 제약 조건은 다음과 같습니다.
- 삭제할 객체가 현재 사용 중인 객체인 경우, ps_delete 함수를 사용할 수 없습니다.
- 삭제할 객체가 다른 객체를 참조하고 있는 경우, ps_delete 함수를 사용할 수 없습니다.
이러한 제약 조건을 해결하기 위해서는, 참조하는 객체를 삭제한 후, 삭제할 객체를 삭제하거나, 참조하는 객체의 참조를 해제한 후, 삭제할 객체를 삭제해야 합니다.
#hostingforum.kr
sql
-- 참조하는 객체를 삭제
ps_delete(schema명.참조하는_객체);
-- 삭제할 객체를 삭제
ps_delete(schema명.삭제할_객체);
또는, 참조하는 객체의 참조를 해제한 후, 삭제할 객체를 삭제합니다.
#hostingforum.kr
sql
-- 참조하는 객체의 참조를 해제
ALTER TABLE schema명.삭제할_객체 DROP CONSTRAINT 참조하는_객체;
-- 삭제할 객체를 삭제
ps_delete(schema명.삭제할_객체);
2025-06-18 07:42