> 데이터 베이스 > MySQL 튜토리얼 > MySQL 데이터베이스의 외래 키 정의 및 제한 사항

MySQL 데이터베이스의 외래 키 정의 및 제한 사항

WBOY
풀어 주다: 2024-03-15 12:36:04
원래의
1130명이 탐색했습니다.

MySQL 데이터베이스의 외래 키 정의 및 제한 사항

제목: MySQL 데이터베이스의 외래 키 정의와 한계

MySQL 데이터베이스에서 외래 키는 테이블 간의 관계를 설정하는 데 사용되는 제약 조건입니다. 외래 키는 한 테이블의 데이터가 다른 테이블의 데이터와 관련되어 있는지 확인합니다. 외래 키를 정의함으로써 데이터 간의 참조 무결성을 달성하여 데이터 일관성과 신뢰성을 보장할 수 있습니다.

1. 외래 키 정의

MySQL에서는 다음 구문을 통해 외래 키를 정의할 수 있습니다.

CREATE TABLE 表名 (
    列名 数据类型,
    外键列名 数据类型,
    FOREIGN KEY (外键列名) REFERENCES 关联表名(关联列名)
);
로그인 후 복사

여기서 外键列名 是当前表中需要关联的列名,关联表名 是需要关联的表的表名,关联列名는 관련 테이블에 연결되어야 하는 열 이름입니다. 이 정의를 사용하면 테이블 간에 일대다 관계를 설정할 수 있습니다.

2. 외래 키에 대한 제한 사항

외래 키를 정의할 때 데이터 무결성을 보장하기 위해 몇 가지 제한 사항을 추가할 수 있습니다. 다음은 몇 가지 일반적인 외래 키 제약 조건입니다.

  • ON DELETE CASCADE: 마스터 테이블의 레코드가 삭제되면 슬레이브 테이블의 관련 레코드도 삭제됩니다.
  • ON DELETE SET NULL: 메인 테이블의 레코드가 삭제되면 슬레이브 테이블의 관련 레코드의 외래 키 값이 NULL로 설정됩니다.
  • ON UPDATE CASCADE: 마스터 테이블에 있는 레코드의 기본 키 값이 업데이트되면 슬레이브 테이블에 있는 관련 레코드의 외래 키 값도 업데이트됩니다.
  • ON UPDATE SET NULL: 마스터 테이블에 있는 레코드의 기본 키 값이 업데이트되면 슬레이브 테이블에 있는 관련 레코드의 외래 키 값이 NULL로 설정됩니다.

다음은 특정 외래 키 정의 및 제한의 예입니다.

CREATE TABLE 父表 (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

CREATE TABLE 子表 (
    id INT PRIMARY KEY,
    parent_id INT,
    FOREIGN KEY (parent_id) REFERENCES 父表(id) ON DELETE CASCADE
);
로그인 후 복사

이 예에서는 상위 테이블의 레코드가 다음과 같을 때 상위 테이블과 하위 테이블 간에 일대다 관계가 설정됩니다. 삭제되면 이와 관련된 하위 테이블 레코드도 삭제되므로 데이터 무결성과 일관성이 보장됩니다.

위의 소개를 통해 MySQL 데이터베이스에서 외래 키의 정의와 제한이 매우 중요하다는 것을 알 수 있습니다. 이는 테이블 간의 관계를 설정하고 데이터베이스의 데이터를 효과적으로 관리 및 유지하는 데 도움이 됩니다.

위 내용은 MySQL 데이터베이스의 외래 키 정의 및 제한 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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