> 데이터 베이스 > MySQL 튜토리얼 > mysql에 외래 키를 추가하는 방법은 무엇입니까?

mysql에 외래 키를 추가하는 방법은 무엇입니까?

清浅
풀어 주다: 2020-09-15 11:49:44
원래의
28736명이 탐색했습니다.

Mysql에서 외래 키를 추가하는 방법은 다음과 같습니다: 속성 값 바로 뒤에 추가, fk를 사용하여 테이블 생성 후 외래 키 추가

mysql에 외래 키를 추가하는 방법은 무엇입니까? #🎜🎜 #

관련 학습 권장 사항:

mysql 튜토리얼

mysql 4가지 방법으로 외래 키 추가# 🎜🎜 #

기본 테이블 만들기: class

CREATE TABLE class(cid INT PRIMARY KEY AUTO_INCREMENT,
sname VARCHAR(15) NOT NULL)
INSERT INTO class VALUES(NULL,'六年级一班')
INSERT INTO class VALUES(NULL,'六年级二班')
로그인 후 복사

첫 번째 방법: 바로 뒤에

#을 추가합니다. 속성 값 🎜🎜#

CREATE TABLE student(sid INT AUTO_INCREMENT,
sname VARCHAR(10) NOT NULL,
s_cid INT REFERENCES class(cid),
PRIMARY KEY(sid)
);
로그인 후 복사
//테스트용 데이터 추가
INSERT INTO student VALUES(NULL,'王大锤',2)
INSERT INTO student VALUES(NULL,'胡汉三',3)    //约束不生效,原因待查
INSERT INTO student VALUES(NULL,'卧槽',4)     //不敢相信,在测试一次
로그인 후 복사

이렇게 하면 테스트가 실제로 추가된 이유를 알 수 없습니다. 바이두 온라인에는 결과가 없고 응답이 없습니다. 자습 모임 일단은 여기에 남겨주세요

초: 2. 추가

CREATE TABLE student(
sid INT AUTO_INCREMENT,
sname VARCHAR(10),
s_cid INT,
PRIMARY KEY(sid),
FOREIGN KEY (s_cid) REFERENCES class(cid)
);
로그인 후 복사
//테스트할 데이터 삽입
INSERT INTO student VALUES(NULL,'王大锤',2)
INSERT INTO student VALUES(NULL,'胡汉三',3)   //约束生效  插入失败
로그인 후 복사
는 SQL 문 끝에

외래 키 제약 조건 적용

세 번째 유형: fk 사용

CREATE TABLE student(sid INT AUTO_INCREMENT,
sname VARCHAR(10) NOT NULL,
s_cid INT ,
PRIMARY KEY(sid),
CONSTRAINT fk_student_class FOREIGN KEY(s_cid) REFERENCES class(cid)
);
로그인 후 복사
INSERT INTO student VALUES(NULL,'王大锤',2)
INSERT INTO student VALUES(NULL,'胡汉三',3)  //约束生效  插入失败
로그인 후 복사
#🎜 🎜#네 번째 유형: 공사 중 테이블 뒤에 외래 키 추가

CREATE TABLE student(sid INT AUTO_INCREMENT,
sname VARCHAR(10) NOT NULL,
s_cid INT ,
PRIMARY KEY(sid)
);
로그인 후 복사

//외래 키 제약 조건 추가:

ALTER TABLE student ADD FOREIGN KEY (s_cid) REFERENCES class(cid);
로그인 후 복사
//Test

INSERT INTO student VALUES(NULL,'王大锤',2)
INSERT INTO student VALUES(NULL,'胡汉三',3)  //约束生效   插入失败
로그인 후 복사

위 내용은 mysql에 외래 키를 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿