2010-02-08 6 views
5

ON DUPLICATE UPDATE을 어떻게 다중 값 INSERT로 사용할 수 있습니까?mysql 조건부 삽입 중복 업데이트 - 여러 레코드

INSERT INTO tbl_name 
    (key_id,field1,filed2) 
VALUES 
    (1,2,3), 
    (1,5,6), 
    (1,8,9); 
+0

입니까? 나는 MySQL에'(1,5,6) ON DUPLICATE KEY UPDATE key_id = key_id + 1'을 허용 할 수 있지만, 실행시 테이블의 값은'2, 2, 3' 만 갖는다. –

+0

잘 SQL은 예제이지만 새로운 결과가 삽입되면 하나의 쿼리를 실행하여 여러 값에 대해 중복되는 경우 업데이트 할 수 있습니다. 그래서 key_id 1, 3, 5가 이미 DB에 있고 INSERT를 2, 3, 4, 6으로 실행하면 2,4 및 6이 삽입되어야하고 3이 중복 되었기 때문에 업데이트해야합니다 –

답변

11

내가 지금 그것을 시도 할 수는 없지만이 manual에서이 구문

INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) 
    ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b); 

을 사용할 수 없습니다?

은 당신의 구문은 다음과 같을 것이다 추측 : 의도 한 결과는 무엇

INSERT INTO tbl_name 
    (key_id,field1,filed2) 
VALUES 
    (1,2,3), 
    (1,5,6), 
    (1,8,9) 
ON DUPLICATE KEY 
    UPDATE field1=VALUES(field1), field2=VALUES(field2); 
+0

나는 이것을 놓쳤을 것입니다. thnx –

관련 문제