내 마스터 테이블의 기본 키로 영어 코드 (eng, fre, hin 등)가 ISO 639-2
입니다. 이 열은 다른 테이블의 외래 키입니다. 이제는 내 주인이 인간의 오류로 인해 소문자 값만있는 경우에도 언어 ID가있는 다른 테이블에 일부 값이 추가되는 경우가 있습니다. 외래 키가 있었지만 그것이 발생하는 것을 막지는 못했습니다.
이제는 MySQL에서 처음으로 작업하고 있습니다. 이전에는 Oracle에서 작업했으며 키에 대소 문자를 구분합니다. MySQL에서 동일한 기능을 수행하려면 어떻게해야합니까? 또한 열 유형이 무엇입니까?
지금은 varchar(3)
입니다. 다른 것으로 변환해야합니까? 모든 like
조건을 쿼리 중 하나에서 사용하지 않을 예정인데 =
및 in
뿐입니다.텍스트 데이터 용 MySQL 대소 문자 구분 외래 키
2
A
답변
4
- 민감한 데이터 정렬 구분하는 latin1_swedish_ci 같은 변화 일 - latin1_swedish_cs
을ALTER T1 테이블을 수정할 COL1 VARCHAR (3) CHARACTER SET latin1에 부씩 latin1_swedish_cs;
양식'UPDATE 테이블 SET 컬럼 = LOWER (열)의 쿼리를 실행해야 할 수도 있습니다'처음 있도록하는 데이터 소문자를 확인합니다. – Hammerite
@Hammerite 나는 DB 레벨에서 코드 레벨보다이 체크를하고 싶다. 프로그래머로서 지금은 코드에서 모든 삽입을 제어 할 수 있지만 몇 년이 지나면 코드에서 놓칠 수도 있고 문제가 더 심해질 수도 있습니다. –
테스트 DB에 대한 제안을 확인하겠습니다. 문제가 해결되기를 바랍니다. 마스터 테이블 만 또는 다른 모든 참조 컬럼을 변경해야합니까? 또 다른 제안은 열을 varchar 바이너리로 변경하는 것이 었습니다. 도움이 될까요? –