IT

텍스트 열을 고유 키로 만들기

itgroup 2023. 10. 30. 20:54
반응형

텍스트 열을 고유 키로 만들기

나는 테이블을 만들고 싶습니다.MySQL서버에 접속mediumtext란에UNIQUE KEY

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로 변경할 때..효과가 있어요!

당신은 내가 텍스트 칼럼을 만들수 있는지 알수있습니까?UNIQUE KEY

기본적으로 사용할 수 없습니다.Text란에UNIQUE키. 실제로는 그런 큰 열이 고유하지 않을 것이고 더 많은 중복이 발생할 가능성이 있기 때문입니다.자, 자.hashing방법 및 출력을 고유한 제약 조건으로 사용합니다.

varchar 길이에 대한 255의 제한이 더 이상 적용되지 않습니다.설명서에서:

VARCHAR 열의 값은 가변 길이 문자열입니다.길이는 MySQL 5.0.3 이전의 0 ~ 255, 5.0.3 이상 버전에서는 0 ~ 65,535의 값으로 지정할 수 있습니다.

고유 인덱스는 알려진 최대 길이를 가져야 합니다(내부 구현으로 인해 mysql 요구 사항). 따라서 가장 긴 기대 값에 적합하도록 충분히 큰 값을 가진 varchar를 사용합니다(예:

...
`name` varchar(65535) NOT NULL, -- for example 
...

이것이 매우 오래된 것은 알지만 다른 사람이 원하는 경우에는 varchar 또는 텍스트 열을 고유하게 만들 수 있습니다. 테이블 작성 후에 수행하면 됩니다.

 DROP TABLE IF EXISTS meeting;
CREATE TABLE meeting (
    meeting_id int(11) UNSIGNED UNIQUE NOT NULL PRIMARY KEY AUTO_INCREMENT,
    meeting_name varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
);
CREATE UNIQUE INDEX meeting ON meeting(meeting_name);

언급URL : https://stackoverflow.com/questions/14033378/make-text-column-as-unique-key

반응형