2013-06-11 2 views
1

3 열 tag_id, label, timestamp의 매우 간단한 테이블을 가지고 있으며, 열의 새로운 값인 label이있을 때만 삽입 할 수있는 가능한 한 가벼운 쿼리가 필요합니다.중복 된 열 값 삽입을 피하십시오.

이 작업을 수행하려면 어떻게해야합니까? 사이트에서 이미 몇 가지 예를 볼 수 있지만 이해할 수없는 좀 복잡한 쿼리 (하위 쿼리 포함)가 모두 섞여 있습니다.

여러 가지 방법이있는 것처럼 보입니다. 가장 가벼운 태그를 찾아야 만 여러 개의 태그를 하나의 루프에 삽입하여 반복하여 서버에 무리를주지 않아도됩니다.

+0

이 (가) '고유 필드를 label'입니까? –

+0

레이블은 현재 딱딱한 문자입니다 - 그 다음에 어딘가에 고유하게 설정해야합니까? :) –

+1

당신은 문자열을 의미합니까? 'mysql unique'을 위해서 google을 –

답변

3

당신은

ALTER TABLE `tableName` ADD UNIQUE KEY (label); 

이 스키마에서 해당 열에 대한 고유 한 값을 적용 할 수 있습니다. 중복 값을 삽입하려고하면 오류가 발생합니다. 단순히 오류를 무시하려면 INSERT IGNORE INTO을 사용할 수 있습니다.

+0

아, 팁 - 고약한 악마 오류 덕분에 나는> 8) –

-1

당신은 또한 사용할 수 있습니다

INSERT INTO table(`label`) VALUES ("new value") 
ON DUPLICATE KEY UPDATE `label` = "new value"; 
+1

이 제안은 이해가되지 않는다. –