728x90
반응형
MySQL 외래 키(FOREIGN KEY) 지정 시 UPDATE/DELETE 옵션 지정 방법
RESTRICT | 개체를 변경/삭제할 때 다른 개체가 참조하고 있을 경우 변경/삭제가 취소됨. |
CASCADE | 개체를 변경/삭제할 때 다른 개체가 참조하고 있을 경우 함께 변경/삭제 됨. |
NO ACTION | MySQL에서는 RESTRICT와 동일 |
SET NULL | 개체를 변경/삭제할 때 다른 개체가 참조하고 있을 경우 참조하고 있는 값을 NULL로 설정 됨. |
실제 외래키 설정 예)
-- CREATE MACHINE DOMAIN TABLE
DROP TABLE IF EXISTS `equipmenttbl`;
CREATE TABLE `equipmenttbl` (
equipID VARCHAR(8) NOT NULL,
mcdomainID VARCHAR(92) NOT NULL,
clidomainID VARCHAR(92) NOT NULL,
equipName VARCHAR(128),
equipDesc VARCHAR(128),
PRIMARY KEY(equipID),
FOREIGN KEY (mcdomainID) REFERENCES mcdomaintbl(mcdomainID) ON UPDATE CASCADE ON DELETE RESTRICT,
FOREIGN KEY (clidomainID) REFERENCES clidomaintbl(clidomainID) ON UPDATE CASCADE ON DELETE RESTRICT
);
-- CREATE MACHINE DOMAIN TABLE
DROP TABLE IF EXISTS `equipmenttbl`;
CREATE TABLE `equipmenttbl` (
equipID VARCHAR(8) NOT NULL,
mcdomainID VARCHAR(92) NOT NULL,
clidomainID VARCHAR(92) NOT NULL,
equipName VARCHAR(128),
equipDesc VARCHAR(128),
CONSTRAINT PK_equipTBL PRIMARY KEY(equipID),
CONSTRAINT FK_mcdomainID FOREIGN KEY (mcdomainID) REFERENCES mcdomaintbl(mcdomainID) ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT FK_clidomainID FOREIGN KEY (clidomainID) REFERENCES clidomaintbl(clidomainID) ON UPDATE CASCADE ON DELETE RESTRICT
);
728x90
반응형
'DB > MySQL' 카테고리의 다른 글
[MySQL] SELECT 결과 INSERT 하기 (0) | 2021.09.02 |
---|---|
[MySQL] AUTO_INCREMENT 설정 및 초기화 (0) | 2021.09.01 |
[MySQL] LIKE 구문 (0) | 2021.06.04 |
[MySQL] SHOW TABLES 테이블 정보 확인 (0) | 2021.05.25 |
[MySQL] STRCMP - 문자열 비교 (0) | 2021.05.03 |