MySQL 외부 키 만들기

1423 단어 MySQLmysql
mysql의 키 생성 방식은 두 가지가 있는데 하나는 서브테이블을 만드는 동시에 키를 만드는 것이고 다른 하나는 서브테이블을 만든 후에 서브테이블을 수정하고 키를 추가하는 것이다.
#외키 만들기 방법 1: 하위 테이블을 만드는 동시에 외키 # 학년 테이블을 만듭니다(id\학년 이름)
CREATE TABLE IF NOT EXISTS grade(
	gradeid INT(10) PRIMARY KEY AUTO_INCREMENT,
	gradename VARCHAR(50) NOT NULL
);

#학생정보표(학번, 이름, 성별, 학년, 핸드폰 번호, 주소, 생년월일, 메일박스, 주민등록번호)
CREATE TABLE student(
	studentno INT(4) PRIMARY KEY,
	studentname VARCHAR(20) NOT NULL DEFAULT '  ',
	sex TINYINT(1) DEFAULT 1,
	gradeid INT(10),
	phone VARCHAR(50) NOT NULL,
	address VARCHAR(255),
	borndate DATETIME,
	email VARCHAR(50),
	identityCard VARCHAR(18) NOT NULL,
	CONSTRAINT FK_gradeid FOREIGN KEY(gradeid) REFERENCES grade(gradeid)
);

# 키 만들기 방법 2: 하위 테이블을 만든 후 키 추가 수정
CREATE TABLE student(
	studentno INT(4) PRIMARY KEY,
	studentname VARCHAR(20) NOT NULL DEFAULT '  ',
	sex TINYINT(1) DEFAULT 1,
	gradeid INT(10),
	phone VARCHAR(50) NOT NULL,
	address VARCHAR(255),
	borndate DATETIME,
	email VARCHAR(50),
	identityCard VARCHAR(18) NOT NULL
);
# 하위 테이블 수정 외부 키 추가
ALTER TABLE student
ADD CONSTRAINT FK_gradeid FOREIGN KEY(gradeid) REFERENCES grade(gradeid);

# 외부 키 삭제
ALTER TABLE student DROP FOREIGN KEY FK_gradeid;
ALTER TABLE student DROP INDEX FK_gradeid;

주의: 메인 키 관계가 있는 테이블을 삭제할 때는 먼저 하위 테이블을 삭제한 다음에 메인 테이블을 삭제해야 한다

좋은 웹페이지 즐겨찾기