[SQL] SQL 독특한 VARCHAR 대소 문자 구분 질문
SQLSQL 독특한 VARCHAR 대소 문자 구분 질문
나는 단어의 목록이있는 SQL 테이블을 채우기 위해 노력하고있어. 테이블 자체는 아주 간단합니다 :
CREATE TABLE WORDS(
ID BIGINT AUTO_INCREMENT,
WORD VARCHAR(128) NOT NULL UNIQUE,
PRIMARY KEY(ID)
);
내가 실행 해요 문제는 이것이다 : 내가 할 때 다음 삽입 다시 다시
INSERT INTO WORDS(WORD) VALUES('Seth');
INSERT INTO WORDS(WORD) VALUES('seth');
두 번째 삽입 제약 조건 위반 ( "중복 항목 '세스'키 'WORD'")와 함께 실패합니다.
어떻게 대소 문자를 구별 할 WORD에 UNIQUE 제약을받을 수 있나요?
해결법
-
==============================
1.MySQL은 같은 외모는 기본적으로 케이스를 구분하지 않습니다 :
MySQL은 같은 외모는 기본적으로 케이스를 구분하지 않습니다 :
당신은 아마 대소 문자를 구분 데이터 정렬 (예를 들어 utf8_bin)와 열을 생성해야합니다 :
CREATE TABLE WORDS ( ID BIGINT AUTO_INCREMENT, WORD VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL UNIQUE, PRIMARY KEY(ID) );
-
==============================
2.기본적으로 MySQL은 VARCHAR의 경우 차이 및 후행 공백을 무시합니다.
기본적으로 MySQL은 VARCHAR의 경우 차이 및 후행 공백을 무시합니다.
당신이 대소 문자를 구분해야하는 경우, 당신은 VARCHAR (...) 바이너리로 테이블을 변경할 수 있습니다.
사용은 더 나은 MySQL이 전체 표기법으로 변환하는 방법을 이해에 테이블을 생성 보여줍니다.
당신이로 후행 공백에주의를 지불해야하는 경우뿐만 아니라 대소 문자를 구분, varbinary를 사용하는 대신 VARCHAR합니다.
-
==============================
3.나는 나의 고유 키 VARCHAR (1000)했다. 그것은했다.
나는 나의 고유 키 VARCHAR (1000)했다. 그것은했다.
약간의 시행 착오 후, 나는보다 아무것도 더 큰 발견이나 실패 1100 VARCHAR 같음.
I 1099에 1001 사이에 시도하지 않았다 명확합니다.
도움이 되었기를 바랍니다.
from https://stackoverflow.com/questions/6448825/sql-unique-varchar-case-sensitivity-question by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 집계 함수없이 SQL 서버에서 피벗 쿼리를 만드는 방법 (0) | 2020.05.10 |
---|---|
[SQL] SQL Server와 같은 포함 괄호 문자 (0) | 2020.05.10 |
[SQL] 어떻게 자동으로 UID12345678 같은 SQL에 고유 ID를 생성하는? (0) | 2020.05.10 |
[SQL] 테이블의 각 그룹에 대한 상위 N 개의 행을 선택한 (0) | 2020.05.10 |
[SQL] 오라클에서 ROWNUM처럼 MySQL의에서 행 번호를 얻을 수있는 방법이 있나요 [중복] (0) | 2020.05.10 |