2013-06-20 4 views
1

데이터베이스를 pg_dump하고 일부 시퀀스가 ​​덤프 파일에서 생성되고 일부 시퀀스가 ​​생성되지 않는 문제가 있습니다.일부 시퀀스가 ​​pg_dump의 덤프에 없습니다.

표 infrastruktur_pictures 테이블 hoehenprofile 함께 작동하지 않습니다. 여기 pgadmin3에서 테이블에 대한 정보를 정기적으로 있습니다

hoehenprofile는

CREATE SEQUENCE "hoehenprofile_HID_seq" 
    INCREMENT 1 
    MINVALUE 1 
    MAXVALUE 9223372036854775807 
    START 14289 
    CACHE 1; 
ALTER TABLE "hoehenprofile_HID_seq"; 

CREATE TABLE hoehenprofile 
(
    "HID" serial NOT NULL, 
    hoehenprofil character varying(255), 
    CONSTRAINT "HID" PRIMARY KEY ("HID") 
) 
WITH (
    OIDS=FALSE 
); 
ALTER TABLE hoehenprofile ADD COLUMN "HID" integer; 
ALTER TABLE hoehenprofile ALTER COLUMN "HID" SET NOT NULL; 
ALTER TABLE hoehenprofile ALTER COLUMN "HID" SET DEFAULT nextval('"hoehenprofile_HID_seq"'::regclass); 

infrastruktur_pictures

덤프 hoehenprofile이 (어떤 순서가 생성되지 않음)과 같습니다 위해 생성 된 코드를 파일에
CREATE SEQUENCE "infrastruktur_pictures_IPID_seq" 
    INCREMENT 1 
    MINVALUE 1 
    MAXVALUE 9223372036854775807 
    START 1 
    CACHE 1; 
ALTER TABLE "infrastruktur_pictures_IPID_seq"; 

CREATE TABLE infrastruktur_pictures 
(
    "IPID" serial NOT NULL, 
    picture character varying(255) NOT NULL, 
    picture_text text, 
    fotograf text, 
    CONSTRAINT prim PRIMARY KEY ("IPID") 
) 
WITH (
    OIDS=FALSE 
); 
ALTER TABLE infrastruktur_pictures ADD COLUMN "IPID" integer; 
ALTER TABLE infrastruktur_pictures ALTER COLUMN "IPID" SET NOT NULL; 
ALTER TABLE infrastruktur_pictures ALTER COLUMN "IPID" SET DEFAULT nextval('"infrastruktur_pictures_IPID_seq"'::regclass); 

:

-- 
-- TOC entry 145 (class 1259 OID 67719) 
-- Name: hoehenprofile; Type: TABLE; Schema: public; Owner: -; Tablespace: 
-- 

CREATE TABLE hoehenprofile (
    "HID" integer DEFAULT nextval('"hoehenprofile_HID_seq"'::regclass) NOT NULL, 
    hoehenprofil character varying(255) 
); 

infrastruktur_pictures의 코드는 다음과 같습니다. 이 :

- 
-- TOC entry 152 (class 1259 OID 67750) 
-- Name: infrastruktur_pictures; Type: TABLE; Schema: public; Owner: -; Tablespace: 
-- 

CREATE TABLE infrastruktur_pictures (
    "IPID" integer NOT NULL, 
    picture character varying(255) NOT NULL, 
    picture_text text, 
    fotograf text 
); 


-- 
-- TOC entry 4230 (class 0 OID 0) 
-- Dependencies: 152 
-- Name: TABLE infrastruktur_pictures; Type: COMMENT; Schema: public; Owner: - 
-- 

COMMENT ON TABLE infrastruktur_pictures IS 'Bilder im Infrastruktur Bereich des Backends'; 


-- 
-- TOC entry 153 (class 1259 OID 67756) 
-- Name: infrastruktur_pictures_IPID_seq; Type: SEQUENCE; Schema: public; Owner: - 
-- 

CREATE SEQUENCE "infrastruktur_pictures_IPID_seq" 
    INCREMENT BY 1 
    NO MINVALUE 
    NO MAXVALUE 
    CACHE 1; 


-- 
-- TOC entry 4231 (class 0 OID 0) 
-- Dependencies: 153 
-- Name: infrastruktur_pictures_IPID_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - 
-- 

ALTER SEQUENCE "infrastruktur_pictures_IPID_seq" OWNED BY infrastruktur_pictures."IPID"; 

이 두 테이블의 유일한 차이점은 pgadmin3에서 볼 수 있습니다. 개체 브라우저에서 특정 cloumn (HID, IPID)을 클릭하고 속성 탭을 보면 그 HID 열에서 시퀀스 특성이 설정되지 않은 것을 볼 수 있습니다.

답변

1

두 번째 경우에는 시퀀스가 ​​테이블 소유라는 점이 다릅니다. pg_dump의 마지막 행을 확인하십시오.

직렬 의사 데이터 형식을 사용하여 테이블을 만들면 소유권이 자동으로 추가되기 때문입니다. 그러나 수동으로 시퀀스를 만들 때 "소유 된 BY"를 설정하지 않았습니다.