col_A
과 col_B
의 두 열로 구성된 간단한 table
이 있습니다.MySQL : 행을 업데이트하고 복제본이 될 경우 원본을 삭제합니다.
기본 키는 둘 모두에 대해 정의됩니다.
UPDATE `table` SET `col_A` = 66 WHERE `col_A` = 70
이 문 때로는 중복 키 오류를 얻을 :
나는 일부 행을 업데이트하고, 예를 들어, 중복을 생성 할 수 col_A
값을 할당해야합니다.
오류를 생성하는 행은 변경되지 않으므로 UPDATE IGNORE
의 오류를 간단하게 무시하고 싶지 않습니다. 불행하게도 SQL에서 정당하지 않은
UPDATE `table` SET `col_A` = 66 WHERE `col_A` = 70 ON DUPLICATE KEY REPLACE
대신, 나는 그들을 그들이
를 업데이트 한 후 내가 좋아하는 뭔가를 쓰고 싶습니다 그들이 다른 행과 충돌 할 때 삭제하려면 그래서 다른 방법을 찾는 데 도움이 필요합니다. 또한 PHP를 사용하고 있으며 하이브리드 솔루션 (즉, 부분 쿼리 부분 PHP 코드)을 고려할 수 있지만이 업데이트 작업을 수 백만 번 수행해야한다는 것을 명심하십시오. 귀하의 관심
덕분에,
실비오
알림 : 업데이트되는 동일한 테이블 조인과 UPDATE
의 구문에 문제가
편집 : 미안, 열 이름 WHERE 절이 잘못되었습니다. 이제는 수정했습니다.
작동합니다. 감사합니다! –