두 테이블 사이에 다대다 관계를 구축하세요. 정리 데이터 테이블(clean_data 테이블)과 사용자 테이블(user 테이블)은 다대다 관계를 구축했습니다. 아래 그림과 같이
1. 테이블을 생성합니다
. navicat을 열고 clean_data 테이블과 user 테이블, 그리고 두 테이블 사이의 관계 테이블(clean_data_user 테이블)을 생성합니다.
테이블 구조는 다음과 같습니다:
관련 권장 사항: "Navicat for mysql graphic tutorial"
2.1 첫 번째 설정 clean_data_ 사용자 테이블 연관된 cln_dt_id 및 user_id 필드가 기본 키입니다. 아래 그림과 같이
2.2 외래 키 버튼을 클릭하여 외래 키 관계를 설정합니다. 필드 이름에서 알 수 있듯이 cln_dt_id는 clean_data 테이블의 ID와 연결되고 user_id는 user 테이블의 ID와 연결됩니다. 아래 그림과 같습니다.
참고:
1. 데이터베이스 테이블에서 다대다 관계를 설정할 때 기본 키가 먼저 설정되어야 합니다. 외래 키가 먼저 설정되지 않으면 아래 그림 6과 같이 오류 1215가 발생합니다. 이 문제로 거의 2시간을 낭비했습니다. 정말 그러면 안 됩니다.
** 나중에 기본 키를 만들 필요가 없고 cln_td_id 및 user_id에 대한 인덱스만 만들면 된다는 것을 알게 되었습니다! **이제 1215 오류의 원인을 정리하겠습니다.
MySQL에서 외래 키 생성 오류: 1215 외래 키 제약 조건을 추가할 수 없습니다1. 엄격한 일치가 아닙니다. 그 중 두 단어 short는 int(6)과 int(7)로 일치하지 않습니다. 하나는 서명되지 않은(서명되지 않은) 것이고 다른 하나는 서명된 것으로 역시 일치하지 않습니다. 2. 외래 키를 설정하려는 필드가 색인화되지 않았거나 기본 키가 아닙니다. 그 중 하나가 기본 키가 아닌 경우 먼저 해당 키에 대한 인덱스를 생성해야 합니다. 3. 테이블 중 한두 개가 MyISAM 엔진의 테이블입니다. 외래 키 제약 조건을 사용하려면 테이블이 InnoDB 엔진이어야 합니다. (실제로 두 테이블 모두 MyISAM 엔진이면 이 오류는 전혀 발생하지 않지만 외래 키는 생성되지 않고 인덱스만 생성됩니다. 생성됨) 테이블의 엔진 종류를 확인해야 합니다. 4. 외래 키 이름은 반복될 수 없습니다. 5. ON DELETE SET NULL을 설정했을 수 있지만 관련 키 필드는 NOTS NULL 값으로 설정되어 있습니다. cascade 속성 값을 수정하거나 필드 속성을 null을 허용하도록 설정하여 문제를 해결할 수 있습니다. 6. 문자 집합 및 대조 옵션이 테이블 수준과 필드 수준에서 일치하는지 확인하세요. 7. default=0과 같이 외래 키에 기본값을 설정했을 수 있습니다. 8. ALTER 문에 구문 오류가 있습니다.위 내용은 Navicat for MySQL에서 다중 테이블 링크를 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!