특정 고객을 위해 실수로 테이블의 특정 필드를 덮어 쓰는 문제가 발생하여 별도의 데이터베이스에 백업을 복원했습니다.두 테이블을 하나로 병합
백업 버전에서 한 필드를 가져와 라이브 버전을 덮어 쓰는 쿼리를 작성하려고합니다.
나는 생각 해요 :
이UPDATE live.orders
SET live.orders.price = backup.orders.price
WHERE live.orders.id = backup.orders.id
AND live.orders.date > '2017-01-01 00:00:00'
이 올해 모든 주문 장소에 대한 백업에서 복원 있었는지와 라이브 데이터베이스의 가격 필드를 대체 원하는 효과를 가질까요?
또한 실제로 테이블을 변경하기 전에 테스트하여 출력 결과를 볼 수 있습니까?
감사
물론, 로컬 복사본을 만들거나 서버에 새 데이터베이스로 복사하고, 쿼리를 시도 가입을 기반으로 업데이트 할 필요가 보인다. 그런 다음 트랜잭션 내에서 실행하여 롤백 할 수 있습니다. – ceejayoz