오토세이브 on duplicate key update
본문
현재 그누보드가 아닌 일반 게시판을 php로 개발중입니다.
임시저장기능을 만들기 위해 그누보드를 참고하여 on duplicate key update을 이용해 만들고 있는데,
autosave 테이블에 id, table_name(UNI), user_id(UNI), title(UNI), contents, update_dt
이렇게 만들었습니다.
제가 의도하는 바는 동일한 table_name, user_id, title 일때는 contents가 update가 되고
table_name, user_id가 같고 title이 다르면 추가로 insert를 시키고 싶습니다.
$obj 객체에는 tabile_name, user_id, title, contents, update_dt
INSERT INTO autosave (table_name, user_id, title, contents, udt_dt) VALUES ('".$obj->table_name."', '".$obj->user_id."', '".$obj->title."', '".$obj->contents."', '".$obj->update_dt."')
ON DUPLICATE KEY UPDATE title='".$obj->title."', contents='".$obj->contents."', udt_dt='".$obj->update_dt."'
이렇게 했는데 다른 title인데도 계속 한 행만 update 되고 있어서 여쭙니다 ㅠ 제가 기능을 잘못 이해하고 있는건가요..?
제가 의도한 대로 하려면 어떻게 해야 할까요?
답변 1
INSERT INTO autosave (table_name, user_id, title, contents, udt_dt) VALUES ('".$obj->table_name."', '".$obj->user_id."', '".$obj->title."', '".$obj->contents."', '".$obj->update_dt."')
ON DUPLICATE KEY UPDATE contents='".$obj->contents."', udt_dt='".$obj->update_dt."'
키를 제외한 나머지만 뒤로 들어갑니다.
참고로 뒤쪽에 타이틀까지 썻으니까 table_name, user_id 만 키로 생각하고, 항상 키가 같으니까 - table_name, user_id 는 같으니까요 - 한 행에만 업데이트 하는 거죠 ^^