2013-10-24 4 views
0

은 기본적으로 우리는이 문제와 동일한 문제가 어디에와 중복 키를 삽입/교체 : ON DUPLICATE KEY update (with multiple where clauses)절 [MySQL의]

을하지만 우리는 모두의 중복을 필요로하기 때문에 우리는 참조의 키에 대한 고유 키를 가질 수 없습니다. 하나의 쿼리로이 작업을 수행 할 수 있습니까?

고유 한 식별자가 있으며 날짜를 기록하고 값을 증가시킬 필요가 있지만 여러 쿼리를 수행하지 않고도 업데이트/삽입 할 수 있습니다.

+0

가끔 중복을 허용하고 싶지만 다른 복제본을 만드는 대신 기존 행을 업데이트하고 싶은 경우가 있습니까? 나는 당신이 하나의 쿼리에서 그것을 할 수 있다고 생각하지 않는다. 당신은 테스트를 한 다음 삽입하거나 업데이트해야한다. – Barmar

+0

우리는 ID와 DATE가 항상 같습니다. 그러나 업데이트 될 계수 값이있는 다른 행이 있습니다. 계수 값은 입력을 찾는 데 사용되지 않지만 – Nowayz

+0

데이터베이스 스키마는 도움이됩니다 –

답변

0

잘못 이해하고 계시다면 실례 합니다만, question you're referencing에 언급 된 UNIQUE 제한 사항을 사용하여 원하는 것을 실제로 수행 할 수 있습니다.

두 개 이상의 열에 UNIQUE 제약 조건을 만들 수 있다는 사실을 알고 있습니까? 즉, 2 개의 열의 조합은 고유하지만 열 자체는 필요하지 않습니다.

귀하의 경우에는 ALTER TABLE table ADD CONSTRAINT uq_table_id_date UNIQUE (id, date)을 사용하십시오.