varchar(2000) mysql 테이블과 같은 빅 데이터 유형에 외래 키 추가
P粉378264633
P粉378264633 2023-09-05 17:33:34
0
2
542
<p>"affiliate_stats"와 "transaction"이라는 두 개의 테이블이 있습니다. 'affiliate_stats'에는 'affiliate_sales' varchar(2000) 열(하위 테이블)이 있습니다. "transaction"에는 "_id" 열이 있습니다. varchar(100) 기본 키(상위 테이블)</p> <p>"_id"를 참조하는 "affiliate_sales"에 외래 키를 추가할 때 통과 <code>변경 테이블</code>affiliate_stats<code>제약조건 추가</code>fk_affili_sales<code>외래 키(affiliate_sales)는 거래(</code>_id<code>)를 참조합니다.</code> /p> <p>이 오류를 확인하세요. <code>지정된 키가 너무 깁니다. 최대 키 길이는 tes</code>입니다. 두 열의 크기가 동일해야 한다는 것을 알고 있지만 제 경우에는 이를 처리하려면 다른 크기가 필요합니다. 여러 소스에서 검색했지만 명확한 답변이 없었고 솔루션 중 어느 것도 나에게 도움이 되지 않았습니다. </p>
P粉378264633
P粉378264633

모든 응답(2)
P粉321676640

상장됩니다affiliate_sales 更改为 VARCHAR(100).

으아악

만약 transaction(_id) 的外键,那么它不需要是 VARCHAR(2000)이라면 어차피 100자를 넘는 문자열을 담을 수 없기 때문입니다.

이 작업을 수행하기 전에 현재 열에 100자를 초과하는 문자열이 없는지 확인하세요.


댓글에 답하기:

열에 "배열"(예: 쉼표로 구분된 목록이 있는 문자열)을 저장할 계획이라면 어쨌든 해당 배열에 외래 키를 생성할 수 없다는 점을 이해해야 합니다. 외래 키에는 테이블의 행과 값을 transaction 연결하는 열이 필요합니다. 외래 키 제약 조건을 추가하면 해당 열에 하나의 ID만 저장할 수 있습니다.

affiliate_statsaffiliate_statstransaction 사이에는 실제로 다대다 관계가 있는 것 같습니다. 다대다 관계를 모델링하려면 세 번째 테이블이 필요합니다.

P粉147045274

varchar(2000) 2000자를 저장하지만 각 문자가 반드시 1바이트일 필요는 없습니다. a, 1 및 ?와 같은 간단한 유럽 문자는 모두 1바이트입니다. 그러나 ü 또는 å 또는 َََُِِّْ‎는 여러 바이트를 차지합니다.


문자열 유형의 길이가 같을 필요는 없습니다.

단, 꼭 그럴 필요는 없습니다. 키는 100자를 초과할 수 없습니다. 기본 키는 varchar(100)이므로 외래 키는 100자를 초과할 수 없습니다.

그러나 이 열에는 서로 다른 두 가지 유형의 데이터를 저장하려는 것 같습니다. 하나는 특정 배열 유형이고 다른 하나는 외래 키입니다. 당신은 할 수 없습니다. 외래 키 값에 일치하는 기본 키 값이 있는지 확인하세요.


대신 자동 증가 기본 키를 사용하여 테이블을 서로 연결하세요. 더 간단하고 빠르며 저장 공간을 덜 사용하고 모호하지 않으며 변경되지 않습니다.

두 테이블 모두의 기본 키로 새 열을 추가합니다. 그런 다음 인용해 보세요.


한 열에 여러 키를 저장할 수 없습니다. MySQL은 각 외래 키가 일치하는 기본 키를 가지고 있는지 확인할 수 있어야 하며, 이 키가 정확히 동일한지 확인해야만 이를 수행할 수 있습니다.

대신, 각 제휴_통계 행이 여러 제휴_판매에 해당하는 경우 조인 테이블이 필요합니다. 이를 일대다 관계라고 합니다. Affiliate_stats의 한 행은 많은 Affiliate_sales와 관련되어 있습니다.

으아악

이제 제휴_통계 행에 추가하려는 각 제휴 판매에 대해 제휴_통계 판매에 행을 삽입하세요.

으아악

판매 및 통계 데이터는 이 테이블을 조인하여 연결됩니다. 예를 들어, 100개 단위의 판매 통계를 보고 싶은 경우입니다.

으아악

처음에는 조금 어렵지만 매우 강력합니다. 이것이 관계형 데이터베이스가 작동하는 방식입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿