2011-12-04 2 views
26

innodb 테이블의 구조는 다음과 같습니다. 4 열 (CountryID, Year, %Change, Source), 2 열 (CountryID, Year)을 기본 키로 사용합니다. for-loop를 사용하여 각 행을 삭제하는 것 이외의 여러 행을 어떻게 삭제합니까?MySQL에서 복합 기본 키로 2 열의 행을 여러 개 삭제하는 방법은 무엇입니까?

나는 더 개조하면 되겠 어 후 답을 찾을 수

DELETE FROM CPI 
WHERE CountryID AND Year IN (('AD', 2010), ('AF', 2009), ('AG', 1992)) 

비슷한 뭔가를 찾고 있어요 :이 같은 피클에서 거기에 사람이 도움이

DELETE FROM CPI 
WHERE (CountryID, Year) IN (('AD', 2010), ('AF', 2009), ('AG', 1992)) 

희망.

+0

오류 메시지를 게시 할 수 있습니까? 작동하지 않는 것은 무엇입니까? 그것은 나에게 효과가있는 것처럼 보입니다. 종속 테이블이 있습니까? –

+0

안녕 carl. 흠 .. 난 그냥 당신의 의견을보고 나서 내 질문을 명확히했다. 잘하면 편집이 더 잘 설명합니다. –

+0

woops, 찾았습니다. 대답을 반영하도록 질문을 편집했습니다. 모두에게 감사드립니다! –

답변

29

오라클의 대답은 :

delete from cpi 
where (countryid, year) in (('AD', 2010), ('AF', 2009), ('AG', 1992)) 

그것은 매우 표준 SQL 구문이고 내가 MySQL은 같은 생각합니다.

+0

아하하, 그냥 내 질문을 편집했습니다. 감사 벤! –

+2

이것은 MySQL –

+1

에서 작동합니다! MySQL에서도 마찬가지 였고 매력처럼 작동합니다! –

관련 문제