본문 바로가기
일지/2차 프로젝트

PostgreSQL 문

by 알케니브 2024. 11. 7.

백업방법

1. cmd 창에 포스트그레 설치 경로에서 bin 폴더로 접속하기

cd C:\Program Files\PostgreSQL\17\bin

 

2. 명령어입력

pg_restore -U 유저이름 -d 데이터베이스이름 -F c "C:\Program Files\PostgreSQL\17\backUp\bsHive.dump"

혹은

pg_dump -U postgres -F c -d bsHive -f "C:\Program Files\PostgreSQL\17\backUp\bsHive.dump"





ALTER TABLE "SYLLABUS_UNIT"
ADD CONSTRAINT "SYLLABUS_UNIT_composite_pk" PRIMARY KEY ("LCTR_NUM", "CONTS_ID", "UNIT_NUM");

SELECT constraint_name
FROM information_schema.table_constraints
WHERE table_name = 'SYLLABUS_UNIT' AND constraint_type = 'PRIMARY KEY';

ALTER TABLE "SYLLABUS_UNIT" DROP CONSTRAINT "SYLLABUS_UNIT_composite_pk";

SELECT
    kcu.column_name
FROM
    information_schema.table_constraints AS tc
JOIN
    information_schema.key_column_usage AS kcu 
ON
    tc.constraint_name = kcu.constraint_name
WHERE
    tc.table_name = 'SYLLABUS_UNIT'
    AND tc.constraint_name = 'SYLLABUS_UNIT_composite_pk';



ALTER TABLE "LCTR_VIEW" DROP CONSTRAINT "LCTR_VIEW_CONTS_ID_fkey";


ALTER TABLE "SYLLABUS_UNIT" DROP CONSTRAINT "LCTR_VIEW_CONTS_ID_fkey";
ALTER TABLE "ONLN_CONTS" DROP CONSTRAINT "ONLN_CONTS_SYLLABUS_UNIT_fkey";

ALTER TABLE "ONLN_LCTR"
ADD CONSTRAINT "ONLN_LCTR_SYLLABUS_UNIT_fkey"
FOREIGN KEY ("CONTS_ID") REFERENCES "SYLLABUS_UNIT" ("CONTS_ID");

ALTER TABLE "ONLN_CONTS"
ADD CONSTRAINT "ONLN_CONTS_SYLLABUS_UNIT_fkey"
FOREIGN KEY ("CONTS_ID") REFERENCES "SYLLABUS_UNIT" ("CONTS_ID");


SELECT constraint_name, constraint_type
FROM information_schema.table_constraints
WHERE table_name = 'SYLLABUS_UNIT' AND (constraint_type = 'PRIMARY KEY' OR constraint_type = 'UNIQUE');


SELECT 
    conname AS constraint_name,
    conrelid::regclass AS table_name,
    a.attname AS foreign_column,
    ccu.table_name AS referenced_table,
    ccu.column_name AS referenced_column
FROM 
    pg_constraint AS c
    JOIN pg_attribute AS a ON a.attnum = ANY(c.conkey)
    JOIN information_schema.constraint_column_usage AS ccu
        ON ccu.constraint_name = c.conname
WHERE 
    c.confrelid = '"SYLLABUS_UNIT"'::regclass   -- 대소문자 구분을 위해 큰따옴표 사용
    AND conrelid = '"ONLN_LCTR"'::regclass;

SELECT 
    conname AS constraint_name,
    conrelid::regclass AS table_name,
    a.attname AS foreign_column,
    ccu.table_name AS referenced_table,
    ccu.column_name AS referenced_column
FROM 
    pg_constraint AS c
    JOIN pg_attribute AS a ON a.attnum = ANY(c.conkey)
    JOIN information_schema.constraint_column_usage AS ccu
        ON ccu.constraint_name = c.conname
WHERE 
    c.confrelid = '"SYLLABUS_UNIT"'::regclass
    AND conrelid = '"ONLN_CONTS"'::regclass;

 

 

ALTER TABLE "LCTR_VIEW"
ALTER COLUMN "LAST_DTL" TYPE INTEGER USING "LAST_DTL"::INTEGER;

 

 

DROP TABLE "ONLN_CONTS" CASCADE;

SELECT constraint_name
FROM information_schema.table_constraints
WHERE table_name = 'SYLLABUS_UNIT' AND constraint_type = 'PRIMARY KEY';

ALTER TABLE "SYLLABUS_UNIT" DROP CONSTRAINT "SYLLABUS_UNIT_composite_pk";

ALTER TABLE "SYLLABUS_UNIT" ALTER COLUMN "VDO_ID" TYPE VARCHAR;

ALTER TABLE "SYLLABUS_UNIT"
ADD COLUMN "CONTS_NM" VARCHAR(50),  -- CONTS_NM: 문자열, 최대 255자
ADD COLUMN "PLAY_HR" VARCHAR(50);

SELECT o."LCTR_NUM"
FROM "ONLN_LCTR" o
LEFT JOIN  "SYLLABUS_UNIT" s ON o."LCTR_NUM" = s."LCTR_NUM"
WHERE  s."LCTR_NUM" IS NULL;

ALTER TABLE "LCTR_VIEW"
RENAME COLUMN "CONTS_ID" TO "VDO_ID";

SELECT constraint_name
FROM information_schema.table_constraints
WHERE table_name = 'LCTR_VIEW' AND constraint_type = 'FOREIGN KEY';

ALTER TABLE "LCTR_VIEW" 
DROP CONSTRAINT "LCTR_VIEW_SYLLABUS_UNIT_fkey";

CREATE SEQUENCE syllabus_unit_unit_num_seq
START WITH 1  -- 시퀀스 시작 값
INCREMENT BY 1;

ALTER TABLE "SYLLABUS_UNIT"
ALTER COLUMN "UNIT_NUM" SET DEFAULT nextval('syllabus_unit_unit_num_seq');

 

 

 

'일지 > 2차 프로젝트' 카테고리의 다른 글

데이터베이스 입력  (0) 2024.10.29
테이블 관련 정보  (0) 2024.10.29