반응형
SQL 고유 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'키에 대한 중복 항목 'seth'").
UNIQUE
제약 조건 WORD
이 대소 문자를 구분하도록 하려면 어떻게 해야합니까?
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)
);
기본적으로 MySQL은 .NET의 대소 문자 및 후행 공백의 차이를 무시합니다 varchar
.
대소 문자를 구분해야하는 경우 테이블을 varchar(...) binary
.
show create table
MySQL이이를 전체 표기법으로 변환하는 방법을 더 잘 이해 하려면 사용하십시오 .
후행 공백에주의하고 대소 문자를 구분해야하는 경우 varbinary
대신을 사용하십시오 varchar
.
고유 키 varchar (1000)을 만들었습니다. 효과가있었습니다.
약간의 시행 착오 끝에 1100 varchar보다 크거나 같은 것이 실패한다는 것을 알았습니다.
명확히하기 위해 1001에서 1099 사이에 시도하지 않았습니다.
도움이 되었기를 바랍니다.
참조 URL : https://stackoverflow.com/questions/6448825/sql-unique-varchar-case-sensitivity-question
반응형
'programing' 카테고리의 다른 글
Html.EditorFor additionalViewData (0) | 2021.01.14 |
---|---|
VARCHAR2 (10 CHAR)와 NVARCHAR2 (10)의 차이점 (0) | 2021.01.14 |
XML의 따옴표. (0) | 2021.01.14 |
Android AudioRecord 예 (0) | 2021.01.14 |
vim 백 스페이스가 ^? (0) | 2021.01.14 |