나는 테이블이있다 :
table votes (
id,
user,
email,
address,
primary key(id),
);
이제 열을 사용자, 이메일, 주소를 고유 하게 만들려고합니다 .
MySql에서 어떻게해야합니까?
물론 예는 단지 예일뿐입니다. 따라서 의미에 대해 걱정하지 마십시오.
답변
ALTER TABLE `votes` ADD UNIQUE `unique_index`(`user`, `email`, `address`);
답변
MySQL 테이블이 있습니다.
CREATE TABLE `content_html` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_box_elements` int(11) DEFAULT NULL,
`id_router` int(11) DEFAULT NULL,
`content` mediumtext COLLATE utf8_czech_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id_box_elements` (`id_box_elements`,`id_router`)
);
UNIQUE KEY는 예상대로 작동하며 id_box_elements 및 id_router의 여러 NULL 행을 허용합니다.
MySQL 5.1.42를 실행 중이므로 위에서 설명한 문제에 대한 업데이트가있을 수 있습니다. 다행히도 작동하고 희망적으로 유지됩니다.
답변
MySQL이 NULL을 고유 값으로 취급하고 적어도 현재 다중 열 인덱스에서이를 해결하기위한 논리가 없기 때문에 행에 NULL 값이 있으면 다중 열 고유 인덱스가 MySQL에서 작동하지 않습니다. 예, 여러 열 인덱스의 합법적 인 응용 프로그램을 많이 제한하기 때문에 동작이 미친 듯하지만 실제로는 … MySQL에서 “고정하지 않을 것”으로 찍힌 버그입니다. 버그 추적 …
답변
이것을 시도 했습니까?
UNIQUE KEY `thekey` (`user`,`email`,`address`)
답변
이것은 mysql 버전 5.5.32에서 작동합니다.
ALTER TABLE `tablename` ADD UNIQUE (`column1` ,`column2`);
답변
MySql 5 이상은 다음과 같이 작동합니다 (방금 테스트했습니다).
- 널 입력 가능 컬럼과 관련된 고유 제한 조건을 정의 할 수 있습니다. A가 널 입력 가능하지 않지만 B가
- 그러한 제약 조건을 평가할 때 원하는 횟수만큼 (A, null)을 가질 수 있습니다 (같은 A 값!)
- 하나의 (B 형이 아닌 A) 쌍만 가질 수 있습니다
예 : PRODUCT_NAME, PRODUCT_VERSION ‘glass’, null ‘glass’, null ‘wine’, 1
이제 ( ‘wine’1)을 다시 삽입하려고하면 제약 조건 위반이보고됩니다.
답변
phpMyAdmin을 통해 여러 열의 고유 인덱스를 추가 할 수 있습니다 . (버전 4.0.4에서 테스트)
대상 테이블 의 구조 페이지로 이동 하십시오. 열 중 하나에 고유 색인을 추가하십시오. 구조 페이지 맨 아래에 있는 색인 목록을 확장하여 방금 추가 한 고유 색인을보십시오. 편집 아이콘을 클릭하면 다음 대화 상자에서 해당 고유 색인에 열을 추가 할 수 있습니다.