[SQL] 일부 값만 수정하고 새로운 로우(record)로 옮겨 쓰기

기록이 중요합니다.

실제로 서비스를 하게 된다면 사용자가 게시물을 수정할 때마다 (혹시 모를 수사 목적으로)기록을 남겨 둬야 하는데 다른 테이블에 따로 분류하는 것도 있지만 수정사항이 있다면 해당 내용을 새로운 id 등으로 쓰고 덮는 쪽이 개발하는데에 좀 편합니다.

인터넷에 돌아다니는 자료는 정말 많지만 이해하기가 힘들게 되어있는 글이 많아서(내가 이해를 못해서) 몇 자 남겨둡니다. 도움이 되시길…

일부 값만 수정하고 새로운 row 로 옮겨쓰는 방법은?

아래와 같이 작성해주면 됩니다!

INSERT INTO [테이블 명] ( 변경하고자 하는 항목 ) SELECT “변경하고 새로 쓸 내용1”, “변경하고 새로 쓸 내용2” …. FROM [테이블명] WHERE [테이블에서 찾을 항목]

예제를 하나 두자면…


INSERT INTO // insert 문
users // 테이블
( nickname, username, last_updated_id, enabled ) --변경하고자 하는 항목
SELECT
"헌주", '', '334', 1 -- 변경하고자 하는 항목(순서를 맞춰주자)
FROM users -- 테이블명
WHERE member_id = "334" -- 나머지 데이터를 가져올 곳

이렇게 하면 되겠네요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다