INSERT INTO .. ON DUPLICATE KEY UPDATE for multiple items
이렇게하고 싶어요
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key2','value')
ON DUPLICATE KEY UPDATE
t.c = 'value';
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key3','value2')
ON DUPLICATE KEY UPDATE
t.c = 'value2';
ta와 tb는 열쇠입니다. 이것은 모두 잘 작동하지만 두 번째 삽입에서 오류가 발생합니다. phpMyAdmin을 사용하면 이와 같은 쿼리가 잘 작동하지만 해당 쿼리의 결과를 주석으로 인쇄 할 때 독립적으로 쿼리를 실행하고 있다고 생각합니까?
이와 같은 것도 좋지만 각 항목에 대해 다른 값이 필요합니다. 나는 이것을 선호하지만 각 값의 업데이트에서 값을 어떻게 변경할 수 있는지 잘 모르겠습니다.
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key2','value'), ('key1','key3','value2')
ON DUPLICATE KEY UPDATE
t.c = ???
문제는 물음표에 있습니다. 각 삽입 / 업데이트가 올바른 값을 갖도록하려면 거기에 무엇을 넣어야합니까? 분명히 거기에 값을 넣으면 모든 필드가 그 값을 얻습니다.
"존재하는 경우 업데이트하고 그렇지 않으면 삽입"쿼리를 두 개의 키로 여러 필드에 수행하는 다른 방법이 있다면 다른 아이디어도 필요합니다. 나는 각 쿼리를 개별적으로 실행할 수 있다고 생각하지만 (phpMyAdmin?처럼) 많은 쿼리가 될 것이므로 정말로 피하고 싶습니다.
VALUES () 함수 사용
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key2','value'), ('key1','key3','value2')
ON DUPLICATE KEY UPDATE
t.c = VALUES(t.c)
참조 http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html를
댓글에 대한 담당자가 너무 적었지만 @ ʞɔıu 응답에서 영감을 얻은 약간 더 복잡한 구문을 추가하고 싶었습니다. 중복 키에서 여러 필드를 업데이트하려면 :
INSERT INTO t (t.a, t.b, t.c, t.d)
VALUES ('key1','key2','value','valueb'), ('key1','key3','value2','value2b')
ON DUPLICATE KEY UPDATE
t.c = VALUES(t.c),
t.d = VALUES(t.d)
중복 키 업데이트에서 여러 번 대량 삽입을 수행하려는 누군가가 도움이되기를 바랍니다. 구문은 나를 피했습니다.
참고 URL : https://stackoverflow.com/questions/450682/insert-into-on-duplicate-key-update-for-multiple-items
'IT Share you' 카테고리의 다른 글
자바 8 : 스트림 API로 목록 병합 (0) | 2020.11.09 |
---|---|
내 XML 파일에서 BOM 문자를 제거하는 방법 (0) | 2020.11.09 |
XOR이 암호화에 사용되는 이유는 무엇입니까? (0) | 2020.11.09 |
TeamCity 웹 서버용 포트 변경 (0) | 2020.11.09 |
레이블 콘텐츠의 WPF StringFormat (0) | 2020.11.09 |