우분투 12.10 및 MySQL Workbench에서 MySQL 5.1.41을 사용하고 있습니다.MySQL 업데이트가 예상대로 작동하지 않습니다.
2 개의 제품 테이블 t1과 t2가 있습니다. t1은 실시간 데이터이고 t2는 가져온 데이터로 t1으로 업데이트하여 모든 새 제품 가격을 업데이트 할 준비가되었습니다. 그래서 나는 달린다 :
SELECT * FROM t1
JOIN t2 ON t1.id = t2.id
WHERE t1.price != t2.price;
이것은 가격이 다르며 갱신되어야하는 1201 개의 레코드를 반환한다. 그래서 실행 : 여기 그래서 이미 0
뭔가 옳지 않다 : 1,143 변경 : 1143 경고
UPDATE t1 JOIN t2 ON t1.id = t2.id
SET t1.price = t2.price
WHERE t1.price != t2.price;
이 1143 개 행 적용됨, 일치가 행 오류 및 보고서없이 완료됩니다. select 쿼리에서 1201 레코드가 다르지만 동일한 조인과 조건을 사용하여 1143 레코드 만 변경 되었습니까?
초기 선택 쿼리를 실행하면 58 개의 레코드가 여전히 가격이 다를 것으로 예상됩니다. 그러나 그것을 실행할 때 나는 처음에했던 것과 같은 1201을 얻습니다. 마치 업데이트가 커밋되지 않는 것과 같습니다.
아이디어가 있으십니까?
테이블 entrie 모두 동일한 ID를 가지고 – sll
모두't1.price'와'동일한 유형의 t2.price' 열입니다 – nobody
무엇 sllev 수단 (내 생각)입니다 :?를인가 두 테이블의'id' 프라이 머리 키가 일치하지 않으면 그 이유가 있습니다 –