날짜가 및 인이 포함 된 SQL 테이블의 날짜 열을 변경해야합니다. 20170101
~ 20170102
. 그러나 새로운 날짜 20170102
이 이미 존재할 수 있습니다. 날짜 열이 고유 색인의 일부이므로 중복 키 오류가 발생합니다.중복 키 삽입 : 함께 값 추가
내 첫번째 생각은 중복 키를 삽입을 사용하는 것이었다 :
INSERT INTO table (Date, Amount)
SELECT '20170102', Amount
FROM table
WHERE Date = '20170101'
ON DUPLICATE KEY UPDATE Amount = OldAmount + NewAmount
부분 Amount = OldAmount + NewAmount
분명히 작동하지 않을 수 있습니다. 하지만 어떻게하면 내 문제를 해결할 수 있습니까?
mysql 및 tsql 태그는 일반적으로 호환되지 않습니다. 해당 소프트웨어 (MySQL, Oracle, DB2 등) 및 버전으로 질문에 태그를 답니다. 'sql-server-2014'. 구문과 기능의 차이가 종종 답변에 영향을 미칩니다. 'tsql'은 선택 항목을 좁히지 만 데이터베이스는 지정하지 않습니다. – HABO
[this] (https://stackoverflow.com/questions/1197733/does-sql-server-offer-anything-like-mysqls-on-duplicate-key-update) 질문 도움이 되셨습니까? – HABO
병합 명령을 사용하면 거기에 도착합니다. – Paparazzi