> 데이터 베이스 > MySQL 튜토리얼 > 외래 키에 대해 ON DELETE CASCADE를 ON DELETE RESTRICT로 변경하는 방법은 무엇입니까?

외래 키에 대해 ON DELETE CASCADE를 ON DELETE RESTRICT로 변경하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-29 18:18:16
원래의
667명이 탐색했습니다.

How to Change ON DELETE CASCADE to ON DELETE RESTRICT for Foreign Keys?

외래 키에 대한 참조 작업 수정: 단계별 가이드

데이터베이스 관리에서 외래 키는 테이블 간 데이터를 연결하여 참조 무결성을 강화합니다. 기본적으로 대부분의 데이터베이스 시스템은 상위 레코드가 삭제되면 하위 레코드도 삭제하는 "ON DELETE CASCADE" 동작으로 외래 키를 설정합니다.

그러나 이 동작을 " 삭제 시 제한됩니다." 이 변경으로 인해 기존 하위 레코드가 있는 경우 상위 레코드가 삭제되지 않습니다.

1단계: 이전 제약 조건 삭제

참조 작업을 변경하려면 먼저 기존 제약 조건을 삭제해야 합니다. 다음 구문을 사용하십시오.

ALTER TABLE table_name DROP FOREIGN KEY constraint_name;
로그인 후 복사

"table_name"을 외래 키가 포함된 테이블 이름으로 바꾸고 "constraint_name"을 기존 제약 조건의 이름으로 바꿉니다.

2단계: 새로 추가 제약 조건

이전 제약 조건이 삭제되면 원하는 참조 작업이 포함된 새 제약 조건을 추가할 수 있습니다. 다음 구문을 사용하십시오.

ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCES referenced_table(referenced_column) ON DELETE RESTRICT;
로그인 후 복사

"table_name"을 이전과 동일한 테이블로 바꾸고, "constraint_name"을 새 제약 조건의 이름으로 바꾸고, "column_name"을 외래 키 열로 바꾸고, "referenced_table"을 참조된 테이블로 바꿉니다. , 및 "referenced_column"을 참조 테이블의 참조 열로 설정합니다.

예: ON으로 변경 DELETE CASCADE를 ON DELETE RESTRICT로

다음 테이블 구조를 고려하세요.

CREATE TABLE UserDetails (
  Detail_id INT PRIMARY KEY,
  User_id INT NOT NULL,
  FOREIGN KEY (User_id) REFERENCES Users (User_id) ON DELETE CASCADE
);
로그인 후 복사

참조 작업을 "ON DELETE RESTRICT"로 변경하려면 다음 단계를 따르세요.

  1. 기존 삭제 제약 조건:

    ALTER TABLE UserDetails DROP FOREIGN KEY FK_User_id;
    로그인 후 복사
  2. 새 제약 조건 추가:

    ALTER TABLE UserDetails ADD CONSTRAINT FK_User_id FOREIGN KEY (User_id) REFERENCES Users (User_id) ON DELETE RESTRICT;
    로그인 후 복사

변경 후 "사용자" 테이블에서 레코드 삭제 더 이상 "UserDetails" 테이블에 삭제가 계단식으로 적용되지 않습니다. "Users"의 상위 레코드를 참조하는 "UserDetails"에 기존 하위 레코드가 있는 경우 삭제가 제한됩니다.

위 내용은 외래 키에 대해 ON DELETE CASCADE를 ON DELETE RESTRICT로 변경하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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