데이터가있는 기존 테이블이 있습니다.
create table work_data(
id integer not null,
work_time timestamp(3) without time zone not null,
message character varying(64),
primary key (id)
);
나는 테이블을 분할했다.
create table w_work01(
constraint pk_01 primary key (id),
constraint ck_01
check (work_time >= '2019/07/01'::date and work_time < '2019/07/02'::date)
) inherits (work_data);
create index idx_01 on w_work01 (work_time);
그리고 work_data의 데이터를 w_work01에 삽입합니다.
insert into w_work01
select * from work_data
where work_time >= '2019/07/01'::date and work_time < '2019/07/02'::date)
그런 다음 분할 된 테이블을 삭제했습니다.
DROP TABLE w_work01;
파티션을 나눈 테이블이 삭제되었습니다. 그러나 마스터 테이블의 데이터는 변경되지 않았습니다. 그래서 아래 쿼리를 검색하고 찾았습니다.
ALTER TABLE master_table DROP PARTITION partitioned_table;
하지만 이것을 사용했을 때 오류가 발생했습니다.
partitioned_table 또는 그 근처에서 구문 오류
어떻게 해결할 수 있습니까?
에서 데이터를 삭제하지 않았 work_data
으므로 데이터 가 여전히 존재하는 것은 놀라운 일이 아닙니다. 당신은 테이블을 생성하고, 채우고, 떨어 뜨 렸는데, 이것은 아무런 효과가 없습니다.
게다가 파티션이 아닌 테이블 상속을 사용했습니다.
기존 테이블을 추가하려면 다음과 같이 진행할 수 있습니다.
와 같은 테이블을 만들지 work_data
만
PARTITION BY RANGE (work_time)
원하는 범위에 대한 파티션 생성
질문에서와 같이 파티션을 나눈 테이블에 데이터를 복사하십시오.
원래 테이블을 버리다
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다