mysql 외래 키 제약 조건을 만드는 방법

王林
풀어 주다: 2020-06-17 14:21:40
원래의
4309명이 탐색했습니다.

mysql 외래 키 제약 조건을 만드는 방법

테이블을 생성할 때 외래 키 제약 조건을 설정할 수 있습니다.

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

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

예:

이제 test_db 데이터베이스에 부서 테이블 tb_dept1을 생성합니다. 아래는

mysql 외래 키 제약 조건을 만드는 방법

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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿