mysql ON DUPLICATE KEY UPDATE 질문입니다. 0 5 3,849

by visca구루비 [MySQL] DUPLICATE UPDATE duplicate [2017.04.04 17:08:40]


PK값이 2개인 테이블에 ON DUPLICATE KEY UPDATE를 해주려고 합니다

INSERT INTO dateabase.table
			( aaa, bbb, ccc, ddd)
		VALUES
			( 'aaa', 'bbb', 'ccc', 'ddd')
		ON DUPLICATE KEY UPDATE
			aaa= #{aaa}
			, bbb= #{bbb}
			, ccc= #{ccc}
			, ddd= #{ddd}

다음과 같이 작성하였습니다.

DB테이블에 pk값으로 검색해봤을때 데이터는 존재하였구요

pk1(외래키 설정)한게 있어서

상위 테이블도 검색해봤을때 데이터는 존재하였습니다

그런데도 update처리가 되질 않네요...

어떻게 해야하나요??

 

 

============= 수정 ====================

서버에

 

Cannot add or update a child row: a foreign key constraint fails

와 같은 에러가 발생하여 확인 해봤습니다.

by jkson [2017.04.04 17:33:30]

foreign key 제약에 걸렸네요.

aaa, bbb, ccc, ddd 컬럼중에  foreign key 가 없는지 확인해보세요.


by visca구루비 [2017.04.04 17:35:09]

ON DUPLICATE KEY UPDATE

부분의 aaa, bbb, ccc, ddd 컬럼에는 foreign key 규약에 해당하지 않는

그런 컬럼들지만

INSERT 할때 foreign key 규약에 해당하는 컬럼이 있습니다

INSERT 할때도 지켜줘야 하는건가요??


by 마농 [2017.04.04 17:51:04]

입력 자료의 키가 부모 테이블에 있어야죠.


by 마농 [2017.04.04 17:39:47]

인서트 항목과 업데이트 항목이 동일하네요?
업데이트 항목에는 PK 항목이 빠져야 하는 것 아닌가요?


by visca구루비 [2017.04.04 17:41:05]

보안때문에 컬럼을 지운상태로 올렸습니다

 

INSERT INTO dateabase.table
            ( pk1, bbb, ccc, ddd)
        VALUES
            ( 'pk1', 'bbb', 'ccc', 'ddd')
        ON DUPLICATE KEY UPDATE
            aaa= #{aaa}
            , bbb= #{bbb}
            , ccc= #{ccc}
            , ddd= #{ddd}

수정한다면 이렇게 해야될것 같습니다.

pk1에 foreign key 규약이 설정이 되어있습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입