본문 바로가기

데이터베이스/ORACLE

[ORACLE ] t_board_file 첨부파일 테이블 생성 및 외래키 DELETE CASCADE

이렇게 하면, T_BOARD의 NO번 ROW가 삭제되면, 자동으로 T_BOARD_FILE의 해당 ROW가 삭제된다.

-- 첨부파일 테이블 t_board_file 생성 --
CREATE TABLE T_BOARD_FILE(
    NO NUMBER(5) PRIMARY KEY,
    BOARD_NO NUMBER(5) NOT NULL,
    FILE_ORI_NAME VARCHAR2(300),
    FILE_SAVE_NAME VARCHAR2(300),
    FILE_SIZE NUMBER(10),
    CONSTRAINT T_BOARD_FILE_BOARD_NO_FK FOREIGN KEY(BOARD_NO) REFERENCES T_BOARD(NO) ON DELETE CASCADE
);

CREATE SEQUENCE SEQ_T_BOARD_FILE_NO NOCACHE;

 

아래는, DELETE CASCADE 제약조건이 없던 테이블에 추가하는 방법.


-- 첨부파일 테이블 t_board_file 생성 --
CREATE TABLE T_BOARD_FILE(
    NO NUMBER(5) PRIMARY KEY,
    BOARD_NO NUMBER(5) NOT NULL,
    FILE_ORI_NAME VARCHAR2(300),
    FILE_SAVE_NAME VARCHAR2(300),
    FILE_SIZE NUMBER(10),
    CONSTRAINT T_BOARD_FILE_BOARD_NO_FK FOREIGN KEY(BOARD_NO) REFERENCES T_BOARD(NO)
);

CREATE SEQUENCE SEQ_T_BOARD_FILE_NO NOCACHE;

ALTER TABLE T_BOARD_FILE DROP CONSTRAINT T_BOARD_FILE_BOARD_NO_FK;
ALTER TABLE T_BOARD_FILE ADD CONSTRAINT T_BOARD_FILE_BOARD_NO_FK FOREIGN KEY(BOARD_NO) REFERENCES T_BOARD(NO) ON DELETE CASCADE;