> 데이터 베이스 > MySQL 튜토리얼 > MySQL에서 테이블을 생성할 때 외래 키를 설정하는 방법은 무엇입니까?

MySQL에서 테이블을 생성할 때 외래 키를 설정하는 방법은 무엇입니까?

青灯夜游
풀어 주다: 2020-10-07 12:15:15
원래의
23078명이 탐색했습니다.

MySQL 테이블을 생성할 때 외래 키를 설정하는 방법: "CREATE TABLE" 문에서 "[CONSTRAINT <외부 키 이름>] FOREIGN KEY 필드 이름 [, 필드 이름 2,...] REFERENCES 기본 키 열 1 [, 기본 키 열 2,…]” 문 설정입니다.

MySQL에서 테이블을 생성할 때 외래 키를 설정하는 방법은 무엇입니까?

MySQL 외래 키 제약 조건(FOREIGN KEY)은 테이블의 특수 필드로, 기본 키 제약 조건과 함께 자주 사용됩니다. 연결된 관계가 있는 두 테이블의 경우, 연결된 필드의 기본 키가 있는 테이블이 기본 테이블(부모 테이블)이고, 외래 키가 있는 테이블이 보조 테이블(자식 테이블)입니다.

테이블 생성 시 외래 키 제약 조건 설정

CREATE TABLE 문에서 FOREIGN KEY 키워드를 통해 외래 키를 지정합니다. 구체적인 구문 형식은 다음과 같습니다.

[CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…]
REFERENCES <主表名> 主键列1 [,主键列2,…]
로그인 후 복사

Example

순서 테이블과 테이블 간의 외래 키 관계를 보여줍니다. 이 예에서는 test_db 데이터베이스에 부서 테이블 tb_dept1이 생성됩니다. 테이블 구조는 다음 표와 같습니다.

필드 이름데이터 유형Remarks
idINT(11)부서 번호
nameVARCHAR(22) 부서명
위치 VARCHAR(22)부서 위치

tb_dept1을 생성하는 SQL 문과 실행 결과는 다음과 같습니다.

mysql> CREATE TABLE tb_dept1
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(22) NOT NULL,
    -> location VARCHAR(50)
    -> );
Query OK, 0 rows affected (0.37 sec)
로그인 후 복사

데이터 테이블 tb_emp6을 생성하고, tb_emp6 테이블에 외래 키 제약 조건을 생성하여 해당 키 deptId가 테이블 tb_dept1의 기본 키 id와 외래 키로 연결되도록 합니다. SQL 문 및 실행 결과는 다음과 같습니다. .

mysql> CREATE TABLE tb_emp6
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(25),
    -> deptId INT(11),
    -> salary FLOAT,
    -> CONSTRAINT fk_emp_dept1
    -> FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
    -> );
Query OK, 0 rows affected (0.37 sec)

mysql> DESC tb_emp6;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  | MUL | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (1.33 sec)
로그인 후 복사

위 명령문이 성공적으로 실행되면 fk_emp_dept1이라는 외래 키 제약 조건이 테이블 tb_emp6에 추가됩니다. 외래 키 이름은 deptId이며 이는 테이블 tb_dept1의 기본 키 ID에 따라 달라집니다.

참고: 보조 테이블의 외래 키는 기본 테이블의 기본 키와 관련되어야 하며 기본 키와 외래 키의 데이터 유형이 일치해야 합니다. 예를 들어, 둘 다 INT 유형이거나 둘 다 CHAR 유형입니다. 이러한 요구 사항이 충족되지 않으면 슬레이브 테이블 생성 시 "ERROR 1005 (HY000): Can't create table" 오류가 발생합니다.

추천 튜토리얼: mysql 비디오 튜토리얼

위 내용은 MySQL에서 테이블을 생성할 때 외래 키를 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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