> 데이터 베이스 > MySQL 튜토리얼 > mysql의 테이블에 외래 키를 쓰는 방법

mysql의 테이블에 외래 키를 쓰는 방법

下次还敢
풀어 주다: 2024-04-22 19:51:15
원래의
445명이 탐색했습니다.

MySQL에서는 다음 단계를 통해 테이블 ​​외래 키를 생성할 수 있습니다. 상위 테이블과 하위 테이블을 생성하고 해당 열이 상위 테이블에 있는지 확인합니다. FOREIGN KEY 제약 조건을 사용하여 하위 테이블의 열을 상위 테이블의 열과 연결합니다. 선택적으로 상위 테이블 레코드가 삭제되거나 업데이트될 때 하위 테이블 레코드에 미치는 영향을 정의하는 계단식 작업을 지정합니다. 쿼리를 실행하여 외래 키 제약 조건이 올바르게 적용되었는지 확인하세요.

mysql의 테이블에 외래 키를 쓰는 방법

MySQL을 사용하여 테이블 외래 키를 생성하는 방법

MySQL에서는 외래 키 제약 조건을 사용하여 하위 테이블의 레코드가 상위 테이블의 관련 레코드와 일치하는지 확인합니다. 이는 데이터 일관성과 무결성을 유지하는 데 도움이 됩니다. 외래 키를 생성하는 단계는 다음과 같습니다.

1. 상위 테이블과 하위 테이블을 생성합니다.

먼저 외래 키 열이 포함된 하위 테이블을 생성합니다. 해당 열이 상위 테이블에 있는지 확인하십시오. 예:

<code class="sql">CREATE TABLE parent_table (
  id INT NOT NULL,
  name VARCHAR(255)
);

CREATE TABLE child_table (
  id INT NOT NULL,
  parent_id INT,
  name VARCHAR(255)
);</code>
로그인 후 복사

2. 외래 키 제약 조건을 만듭니다.

하위 테이블의 FOREIGN KEY 제약 조건을 사용하여 하위 테이블의 parent_id 열을 다음과 비교합니다. 상위 테이블 code>id 열의 열이 연결됩니다. 예: <code>FOREIGN KEY 约束将子表中的 parent_id 列与父表中的 id 列关联起来。例如:

<code class="sql">ALTER TABLE child_table
ADD FOREIGN KEY (parent_id) REFERENCES parent_table (id);</code>
로그인 후 복사

3. 指定级联操作(可选)

级联操作定义当父表中的记录被删除或更新时,外键约束如何影响子表中的相关记录。您可以使用 ON DELETEON UPDATE

<code class="sql">ALTER TABLE child_table
ADD FOREIGN KEY (parent_id) REFERENCES parent_table (id)
ON DELETE CASCADE
ON UPDATE RESTRICT;</code>
로그인 후 복사

3 계단식 작업 지정(선택 사항)

  • 계단식 작업은 상위 테이블의 레코드가 삭제되거나 업데이트될 때 외래 키 제약 조건이 하위 테이블의 관련 레코드에 영향을 미치는 방식을 정의합니다. ON DELETEON UPDATE 절을 사용하여 이러한 작업을 지정할 수 있습니다. 예:
<code class="sql">SELECT * FROM child_table
WHERE parent_id NOT IN (SELECT id FROM parent_table);</code>
로그인 후 복사
  • 이 예에서는 다음을 지정합니다.
  • 상위 테이블에서 참조되는 상위 레코드가 삭제되면 관련 하위 레코드가 하위 테이블에서 계단식으로 삭제됩니다. 상위 테이블에서 참조된 상위 레코드가 업데이트되면 업데이트가 차단됩니다.

    4. 제약 조건 확인

    🎜🎜외래 키 제약 조건을 생성한 후 다음 쿼리를 실행하여 제약 조건이 적용되었는지 확인합니다. 🎜rrreee🎜 쿼리 결과가 반환되면 해당하는 레코드가 없음을 나타냅니다. 하위 테이블의 상위 레코드 및 외래 키 제약 조건이 올바르게 적용되지 않았습니다. 🎜

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

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