외래 키 제약조건


외래 키 제약조건 설정하기 - 1. CREATE TABLE

FOREIGN KEY (열_이름) REFERENCES 기준_테이블(열_이름)

DROP TABLE IF EXISTS buy, member;
CREATE TABLE member
( 	mem_id		CHAR(8) NOT NULL PRIMARY KEY,
  	mem_name	VARCHAR(10) NOT NULL,
    height		TINYINT UNSIGNED NULL
);
CREATE TABLE buy
( 	num			INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
  	mem_id		CHAR(8) NOT NULL,
    prod_name	CHAR(6) NOT NULL,
    FOREIGN KEY(mem_id) REFERENCES member(mem_id) -- 외래 키 지정
);

외래 키 제약조건 설정하기 - 2. ALTER TABLE

ALTER TABLE 참조_테이블 ADD CONSTRAINT FOREIGN KEY(열_이름) REFERENCES 기준_테이블(열_이름)

DROP TABLE IF EXISTS buy, member;
CREATE TABLE member
( 	mem_id		CHAR(8) NOT NULL PRIMARY KEY,
  	mem_name	VARCHAR(10) NOT NULL,
    height		TINYINT UNSIGNED NULL
);
CREATE TABLE buy
( 	num			INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
  	mem_id		CHAR(8) NOT NULL,
    prod_name	CHAR(6) NOT NULL
);
ALTER TABLE buy
  	ADD CONSTRAINT
    FOREIGN KEY(mem_id)
    REFERENCES member(mem_id);

기준 테이블의 열 이름이 변경/삭제될 때 참조 테이블의 열 이름이 자동으로 변경되도록 하기

ON UPDATE CASCADE ON DELETE CASCADE

DROP TABLE IF EXISTS buy, member;
CREATE TABLE member
( 	mem_id		CHAR(8) NOT NULL PRIMARY KEY,
  	mem_name	VARCHAR(10) NOT NULL,
    height		TINYINT UNSIGNED NULL
);
CREATE TABLE buy
( 	num			INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
  	mem_id		CHAR(8) NOT NULL,
    prod_name	CHAR(6) NOT NULL
);
ALTER TABLE buy
  	ADD CONSTRAINT
    FOREIGN KEY(mem_id)
    REFERENCES member(mem_id)
    ON UPDATE CASCADE
    ON DELETE CASCADE;