Database

MariaDB 제약조건 외래 키 - Constraint Foreign Key - FK

carrotweb 2022. 8. 14. 10:20
728x90
반응형

FK (Foreign Key – 외래 키)

다른 Table의 PK를 Refers(참조)하는 값으로 Table 간의 관계를 파괴하는 작업을 방지하는 용도로 사용됩니다. PK가 있는 Table을 Parent Table이라고 하고 FK가 있는 Table를 Child Table이라고 하며 종속 관계가 됩니다.

 

Table 생성 구문에서 Column을 FK로 생성합니다.

CREATE TABLE IF NOT EXISTS table_name (
	column_name1 data_type,
	column_name2 data_type,
	PRIMARY KEY (column_name1),
	FOREIGN KEY (column_name2) REFERENCES parent_table_name(column_name1)
);

 

Table 생성 구문에서 Column을 FK_name으로 FK를 생성합니다.

CREATE TABLE IF NOT EXISTS table_name (
	column_name1 data_type,
	column_name2 data_type,
	PRIMARY KEY (column_name1),
	CONSTRAINT FK_name FOREIGN KEY (column_name2) REFERENCES parent_table_name(column_name1)
);

 

table_name으로 된 Table에서 FK를 삭제합니다.

ALTER TABLE table_name DROP FOREIGN KEY FK_name;

 

table_name으로 된 Table에서 Column을 FK_name으로 FK를 추가합니다.

ALTER TABLE table_name ADD CONSTRAINT FK_name FOREIGN KEY (column_name) REFERENCES parent_table_name(column_name);

 

 

MariaDB에 Table 생성하기

-- INT_FILE_TB table이 있으면 삭제
DROP TABLE IF EXISTS INT_FILE_TB;
-- INT_FILE_TB table 생성
CREATE TABLE IF NOT EXISTS INT_FILE_TB (
	INT_FILE_SEQ BIGINT AUTO_INCREMENT NOT NULL COMMENT '파일 시퀀스',
	BRD_SEQ BIGINT NOT NULL COMMENT '게시판 시퀀스',
	INT_FILE_NAME VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '파일 이름',
	INT_FILE_SVRNAME VARCHAR(100) NOT NULL COMMENT '파일 서버 저장 이름',
	INT_FILE_PATH VARCHAR(250) NOT NULL COMMENT '파일 경로',	
	INT_FILE_SIZE VARCHAR(100) NOT NULL COMMENT '파일 크기',
	REG_ID VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '등록자 아이디',
	REG_DTM DATETIME DEFAULT NOW() NOT NULL COMMENT '등록 일자',
	PRIMARY KEY (INT_FILE_SEQ),
	CONSTRAINT FK_BRD_SEQ FOREIGN KEY (BRD_SEQ) REFERENCES INT_BOARD_TB(BRD_SEQ)
);

 

728x90
반응형