명확히 의미와 체인 외부 MySQL의 명령

출처: 인터넷
작성자: 사용자
키워드: 웹 프로그래밍 MySQL 자습서

그것은 외래 키에 관해서 라면, 그것은 단지 언급 외래 키의 목적 (참조 무결성) 데이터의 참조 무결성을 확인 하는 것입니다. "하지만 어떤 행동과 의미 할 외래 키 특히 포함"?

1, 외부 체인 설정:

(1) 만들기를 통해 외래 키 테이블을 만듭니다.

테이블에서 명령 코드의 2 라인을 봐:

는 테이블 도시 (
를 만들

......


키 idx_fk_country_id (country_id)


제약 조건 fk_city_country 외래 키 (country_id) 참조 국가 (country_id) 삭제에 업데이트 Casca에 제한 삭제에 드 계단식


)...

참고: 업데이트 캐스케이드 ON DELETE CASCADE에 계단식 업데이트와 계단식 삭제.

일반적으로, 외부 체인을 설정 하면 설정한 외부 체인 필드의 인덱스 먼저, 위와 같이: 키 idx_fk_country_id (country_id), 그러나 이것은 불필요 한, 위의 코드에서:

키 idx_fk_country_id (country_id)


제약 조건 Fk_city_country

이러한 생략할 수 있습니다, 직접 외래 키에서에서 시작. 물론, 체인 이름을 하려면 다음 제약은 필수,

키 idx_fk_country_id (country_id) 없는 MySQL 자동으로 추가 (즉, 표준 index) 키 인덱스를 설정한 후 외부 체인. 쇼를 볼 수 있습니다 만들기 테이블 구축 완료 한 후에.

(2) 만드는 ALTER TABLE을 통해 외래 키:-명령을 수정 하지는. 그것을 추가 합니다.

ALTER 테이블 시 추가 인덱스 idx_city (Countryid);

ALTER 테이블 시 추가 제약 조건 fk_city_country DELETE CASCADE;에 외래 키 (Countryid) 참조 국가 (country_id)

2, 외래 키 삭제:

ALTER TABLE tbname 드롭 외래 키 fk_fkname;

하지만 제약 fk_fkname (즉, 외래 키 기호)를 삭제 하려면 어떻게 해야 당신이 때 정의 지정 하지? 걱정 하지 마세요, MySQL 자체에 만들 것입니다, 다음 명령을 볼 수 있습니다: 표시 CREATE TABLE tbname, 다음 위의 명령을 실행.

특정 작업의 체인 이외의 3:

에 삭제 제한 및 계단식 삭제는 동시에 정의할 수 없습니다.

기본 동작 1:

부모 테이블의 기본 키가 없는 경우 자식 테이블의 외래 키 값을 늘리면 삽입은 금지 됩니다.

기본 작업 2:

자식 테이블 내용이 기록 되어야 하는 경우 기본 테이블 레코드, 삭제, 삭제 사용 안 함

따라서, 위의 생략 될 수 있다 삭제에 제한.

기본이 아닌 작업-계단식 업데이트:

부모 테이블의 기본 키를 업데이트 하는 경우 자식 테이블에 해당 레코드를, ON UPDATE cascade로 구현 되는 경우 자식 테이블 업데이트 자동으로 됩니다.

기본이 아닌 작업-계단식 삭제:

부모 테이블의 기본 키를 업데이트 하는 경우 자식 테이블에 해당 레코드에 DELETE Cascade로 구현 되는 경우 자식 테이블 업데이트 자동으로 됩니다.

4. 다른 외래 키의 매개 변수:

A, null 설정: 부모 테이블 업데이트 되거나 삭제 될 때 자식 테이블에 해당 필드 NULL을 설정 되어 나타냅니다.

B, 조치: 동일 제한, 부모 테이블에서 자식 테이블 레코드를 연결 하는 경우 업데이 트 되 고 제한.

5, 외래 키 검사를 일시적으로 해제:

자주 하는 데 사용:

A, 여러 테이블의 데이터를 가져올 때 필요한 테이블 가져온 순서를 무시 하.

B, 데이터 로드 및 ALTER TABLE 작업을 수행할 때.

명령:

Foreign_key_checks 설정 = 0

완료 되 면 다시 설정된 Foreign_key_checks와 외래 키 검사 = 1;

관련 문서

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.