2014-02-24 2 views
1

에 고유 키와 같은 열 그룹을 사용하여 나는 테이블에 열이 id, placeId, songId, userIdMySQL의

id이 테이블의 기본 인덱스되는 requests라고합니다. 열의 나머지 부분은 부호없는 정수이며 다른 고유 키는 정의되지 않습니다. 5 songId : 12, 다른 행이 동일한 조합을 가질 수는 행 placeId있는 경우

난, placeId & songId쌍 즉, 고유 원한다.

은 내가 insert into requests (...) values (...) on duplicate key do something else

답변

2

당신이 다른 방법이다이

CREATE UNIQUE INDEX placeSong 
ON requests (placeId, songId) 
1
CREATE TABLE `tbl` (
    `ID` INT(11) NOT NULL AUTO_INCREMENT, 
    `field1` VARCHAR(45) NOT NULL DEFAULT '', 
    `field2` VARCHAR(20) NOT NULL DEFAULT '', 
    PRIMARY KEY (`ID`), 
    UNIQUE INDEX `Index 2` (`field1`, `field2`) 
); 
2

처럼 여러 컬럼에 UNIQUE 인덱스를 만들 수있는 것처럼 조회 할 수 있도록이 검사가, SQL 레벨에서 발생 할 테이블에 고유 제한 조건을 추가하십시오.

ALTER TABLE requests ADD CONSTRAINT placeSong UNIQUE(placeId , songId);