] FOREIGN KEY 필드 이름 [, 필드 이름 2,...] REFERENCES <기본 테이블 이름> 기본을 전달합니다. 키 열 1 [ , 기본 키 열 2,…]” 문 설정입니다."/> ] FOREIGN KEY 필드 이름 [, 필드 이름 2,...] REFERENCES <기본 테이블 이름> 기본을 전달합니다. 키 열 1 [ , 기본 키 열 2,…]” 문 설정입니다.">
집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 테이블을 생성할 때 외래 키를 설정하는 방법은 무엇입니까?
MySQL 테이블을 생성할 때 외래 키를 설정하는 방법: "CREATE TABLE" 문에서 "[CONSTRAINT cd58acfcffd2a11ef5e6e738df5b1146] FOREIGN KEY 필드 이름 [, 필드 이름 2,...] REFERENCES
기본 키 열 1 [, 기본 키 열 2,…]” 문 설정입니다.
MySQL 외래 키 제약 조건(FOREIGN KEY)은 테이블의 특수 필드로, 기본 키 제약 조건과 함께 자주 사용됩니다. 연결된 관계가 있는 두 테이블의 경우, 연결된 필드의 기본 키가 있는 테이블이 기본 테이블(부모 테이블)이고, 외래 키가 있는 테이블이 보조 테이블(자식 테이블)입니다.
테이블 생성 시 외래 키 제약 조건 설정
CREATE TABLE 문에서 FOREIGN KEY 키워드를 통해 외래 키를 지정합니다. 구체적인 구문 형식은 다음과 같습니다.
[CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…] REFERENCES <主表名> 主键列1 [,主键列2,…]
Example
순서 테이블과 테이블 간의 외래 키 관계를 보여줍니다. 이 예에서는 test_db 데이터베이스에 부서 테이블 tb_dept1이 생성됩니다. 테이블 구조는 다음 표와 같습니다.
필드 이름 | 데이터 유형 | Remarks |
---|---|---|
id | INT(11) | 부서 번호 |
name | VARCHAR(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 중국어 웹사이트의 기타 관련 기사를 참조하세요!