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 CASCADE
FOREIGN 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) 추가 캐스케이드 삭제 시 업데이트 캐스케이드;
- 직접 부모 테이블을 삭제할 수 없습니다.부모 테이블을 삭제하는 것보다 먼저 자녀 테이블에서 외부 키를 삭제할 수 있습니다.
가장 큰 장점은 테이블에 입력할 수 있는 값을 제한할 수 있다는 것입니다.참조된 테이블에 존재하지 않는 값을 입력하려고 하면 입력할 수 없습니다.
또한 참조된 테이블의 값을 업데이트 또는 삭제한 경우 값을 자동으로 업데이트하거나 해당 값을 포함하는 행을 계단식으로 삭제하도록 설정할 수 있습니다.
코드를 활용하는 것은 실로 훌륭한 기능입니다.
언급URL : https://stackoverflow.com/questions/757181/basics-of-foreign-keys-in-mysql
'sourcecode' 카테고리의 다른 글
Java - SQL 주입을 방지하는 이스케이프 문자열 (0) | 2023.01.10 |
---|---|
MySQL에서 Lock wait timeout exceededed를 디버깅하는 방법 (0) | 2023.01.10 |
텍스트 파일을 수정하는 방법 (0) | 2023.01.10 |
JSON 오브젝트 작성 방법 (0) | 2023.01.10 |
Javascript(글로벌 변수 포함)의 변수 선언 구문의 차이는? (0) | 2022.12.26 |