1
2 개의 동일한 테이블이 있습니다. 'Number'와 'Productcode'필드가 고유 키를 형성합니다. 이 고유 한 키 조합은 두 테이블의 동일합니다.Mysql : 원본 테이블의 레코드를 대상 테이블로 업데이트
테이블 2의 레코드를 테이블 1에 삽입하려고합니다. 레코드 고유 키가 이미 존재할 수 있습니다. 이 경우 모든 필드에 대해 레코드를 업데이트해야합니다.
INSERT INTO Table_dest (Number, Productcode, TransactionDate,
TransactionTime, Price)
SELECT
Number, Productcode, TransactionDate, TransactionTime, Price
FROM
Table_source
WHERE
Table_source.TransactionDate >= Table_dest.TransactionDate
AND Table_source.TransactionTime > Table_dest.TransactionTime;
그러나 그것은 나를 제공 :하지만 ... 기록은 전용 테이블이 레코드의 날짜 필드는 다음 테이블에서 날짜 필드가
1. 나는 다음을 시도보다 최근의 경우 업데이트해야 WHERE 절에 오류가 있습니다. 또한 중복에 오류를 제공하지만 주소를 지정하는 방법을 모르겠습니다. 누구든지 제안 사항이 있으십니까? 감사합니다. 두 테이블을 조인하면서
선택한 쿼리 만 실행하고 결과를 확인하십시오. 원본 및 대상 테이블의 열 수가 일치해야합니다. – Harpreet
감사! 나는 다음을했다 : INSERT INTO Table_dest (Number, Productcode, TransactionDate, TransactionTime, Price) SELECT 번호, Productcode, TransactionDate, TransactionTime, Price FROM Table_source s LEFT JOIN Table_dest d ON s.Number = d.Number 및 s.Productcode = d .Productcode 어디 s.TransactionDate> = s.TransactionDate 및 s.TransactionTime> d.TransactionTime; 하지만 이제는 나에게 오류 메시지가 나타납니다 : "필드 목록의 열 '숫자'가 모호합니다." –
이 오류는 필드의 이름이 같은 방식으로 지정 되었기 때문에 발생합니다. 두 테이블 모두 같은 이름의 필드가 있습니다. MySQL 엔진은 어떤 테이블을 따라야 할지를 결정할 수 없었다. 다음과 같이 해보십시오 :'SELECT s.Number, s.Productcode' – Harpreet