sourcecode

MySQL의 외부 키 기본 사항

copyscript 2023. 1. 10. 21:15
반응형

MySQL의 외부 키 기본 사항

MySQL의 외부 키 구조를 사용하는 방법에 대한 좋은 설명이 있습니까?

MySQL 문서 자체에서는 잘 모르겠습니다.지금까지 join이나 프로그래밍 코드가 있는 외부 키 등을 취급해 왔습니다.

그리고 질문의 두 번째 부분은 MySQL의 내장된 외부 키를 사용하여 개선해야 할 점이 있습니까?

FOREIGN KEYS이치노

효율성의 관점에서 쿼리를 개선하지 않고 잘못된 쿼리만 실패하게 합니다.

이런 관계일 경우:

CREATE TABLE department (id INT NOT NULL)
CREATE TABLE employee (id INT NOT NULL, dept_id INT NOT NULL, FOREIGN KEY (dept_id) REFERENCES department(id))

가 안 department 정도 employee의 discriptions

「 」를 ON DELETE CASCADEFOREIGN KEY참조 행은 참조 행과 함께 자동으로 삭제됩니다.

제약사항으로,FOREIGN KEY을 사용법

참조 테이블에서 삭제하거나 참조 테이블에 삽입할 때 추가 검사를 수행해야 합니다.

실제 외부 키를 사용하는 주요 이점은 데이터 무결성을 보장하고 수정 또는 삭제 시 관련 항목에 대한 계단식 액션을 설정할 수 있다는 것입니다.

예를 들어 포럼을 프로그래밍하고 있다고 가정해 보겠습니다. 키'가 '주요 키'인 '토픽'.topics.topic_id'테이블이라고 하면 '테이블'이라고 '테이블'이라고 하면 '테이블'이라고 하면 ''이라고 하면 '이 있어요posts.topic_id이치노

이러한 외부 키 관계를 통해 모든 게시물이 유효한 항목에 첨부됩니다.ID가 1번인 토픽만 있는 경우, 2번 토픽에 첨부된 데이터베이스에 게시물이 존재할 수 없습니다.데이터베이스가 이를 보증합니다.

단계적 이점을 위해 토픽 테이블에서 토픽이 삭제된 경우 데이터베이스가 이 토픽에 첨부된 게시물 테이블의 모든 게시물을 자동으로 삭제하도록 설정할 수 있습니다.이는 수동으로 수행해야 하는 단계를 제거하므로 편리합니다. 여러 개의 테이블이 서로 링크되어 있을 경우 매우 복잡해질 수 있습니다.외부 키를 사용하면 모든 관계를 자동으로 정리할 수 있습니다.

1.합니다.1 외부 키만 있으면 데이터가 일관되게 유지됩니다.

2. 키될 때 됩니다.2 . 외부 키 정의에 delete cascade를 적용하면 부모 행이 삭제될 때 참조 행이 자동으로 삭제됩니다.

3. Update Cascade에서 외부 키 정의에 적용하면 부모 행이 업데이트될 때 자녀 행이 자동으로 업데이트됩니다.

쿼리: ALTER TABLE child AND 외부 키(parent_id) 참조 부모(id) 추가 캐스케이드 삭제 시 업데이트 캐스케이드;

  1. 직접 부모 테이블을 삭제할 수 없습니다.부모 테이블을 삭제하는 것보다 먼저 자녀 테이블에서 외부 키를 삭제할 수 있습니다.

가장 큰 장점은 테이블에 입력할 수 있는 값을 제한할 수 있다는 것입니다.참조된 테이블에 존재하지 않는 값을 입력하려고 하면 입력할 수 없습니다.

또한 참조된 테이블의 값을 업데이트 또는 삭제한 경우 값을 자동으로 업데이트하거나 해당 값을 포함하는 행을 계단식으로 삭제하도록 설정할 수 있습니다.

코드를 활용하는 것은 실로 훌륭한 기능입니다.

언급URL : https://stackoverflow.com/questions/757181/basics-of-foreign-keys-in-mysql

반응형