복붙노트

[SQL] 고유 키와 같은 메이크업 텍스트 열

SQL

고유 키와 같은 메이크업 텍스트 열

내가 UNIQUE 키와 MEDIUMTEXT 열이 MySQL 서버에서 테이블을 만들고 싶어

CREATE TABLE `parts` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` mediumtext NOT NULL,
      `display_status` int(11) NOT NULL,
       UNIQUE KEY `name` (`name`),
       PRIMARY KEY (`id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

그러나 이것은 실수를

    BLOB/TEXT column 'name' used in key specification without a key length

내가 VARCHAR에 name``의 유형을 변경하면 .. 그것을 작동합니다!

내가 할 수있는 경우에 당신은 UNIQUE KEY로 텍스트 열을 만들기 위해 말할 수있다

해결법

  1. ==============================

    1.기본적으로 당신은 UNIQUE 키로 텍스트 열을 사용할 수 없습니다. 실질적으로 그렇게 큰 열은 고유하지 않습니다 더 많은 중복의 기회가 될 수 있기 때문에. 그래서 해싱 방법에 대한 가서 UNIQUE 제약 조건으로 그 출력을 사용합니다.

    기본적으로 당신은 UNIQUE 키로 텍스트 열을 사용할 수 없습니다. 실질적으로 그렇게 큰 열은 고유하지 않습니다 더 많은 중복의 기회가 될 수 있기 때문에. 그래서 해싱 방법에 대한 가서 UNIQUE 제약 조건으로 그 출력을 사용합니다.

    이 당신을 도움이되기를 바랍니다

  2. ==============================

    2.VARCHAR 길이 255의 제한이 더 이상 적용되지 않습니다. 문서에서 :

    VARCHAR 길이 255의 제한이 더 이상 적용되지 않습니다. 문서에서 :

    충분히 큰 값을 varchar를 사용은 예를 들어 가장 긴 기대 값을 맞게 있도록 고유 인덱스 (인해 내부 구현에 mysql을의 요구 사항) 알려진 최대 길이가 있어야합니다

    ...
    `name` varchar(65535) NOT NULL, -- for example 
    ...
    
  3. from https://stackoverflow.com/questions/14033378/make-text-column-as-unique-key by cc-by-sa and MIT license