user_id, setting 및 value라는 세 개의 열이있는 테이블이 있습니다. 다음 코드를 사용하려고합니다 :MySQL : 고급 삽입이없는 경우
INSERT INTO 'user_settings'(user_id, setting, value)
VALUES (1234, setting_1, 500)
ON DUPLICATE KEY UPDATE user_id = 1234, setting = setting_1'
이 설정은 새로운 설정을 만들 때 유용하며 중복 된 레코드를 생성하지 않습니다. 어떤 행이 영향을받지 않습니다
INSERT INTO 'user_settings'(user_id, setting, value)
VALUES (1234, setting_1, 999)
ON DUPLICATE KEY UPDATE user_id = 1234, setting = setting_1'
: 나는 이전 쿼리를 실행 한 후이 작동하지 않습니다 부가가치를 변경할 때 문제가 온다. 분명히 뭔가를 놓치고있어 ...
중요 : 데이터베이스를 변경할 수 없습니다 (새로운 기본 키 또는 다른 것).
업데이트 : 내 이해가 ON DUPLICATE KEY
인 것 같습니다. 그러나이 문제를 해결하는 가장 효율적인 방법은 무엇입니까?
아래의 설명에 대한 대답은입니다. "주 (또는 고유) 키가 (user_id, 설정)이면 : ... 중복 키 업데이트 값 = 999"를 사용하십시오.
기본 키는 무엇입니까? – Yahia
UPDATE 부분에'user_id'를 할당하면 안됩니다. 삽입 오류가 발생 된 키이기 때문입니다. –
기본 키가 나열되어 있지 않습니다. 테이블에 더 이상 관련이없는 열이 있습니다. –