[my-sql]update 구문 예제
#UPDATE 시 ROW 유무 확인 방식
(1) UPDATE -> row개수가 0 일 경우 INSERT
UPDATE member_game_week SET point = _w_point0, win = _w_win0, lose = _w_lose0, update_date = SYSDATE() WHERE fid = _fid0 AND week = _week;
IF(FOUND_ROWS() = 0) THEN
INSERT member_game_week VALUES (null, _week, _fid0, _w_point0, _w_win0, _w_lose0, SYSDATE());
END IF;
(2) SELECT 하여 row 가 있는지 확인 -> 있으면 UPDATE / 없으면 INSERT
SELECT SQL_CALC_FOUND_ROWS * FROM member_game_week NOLOCK WHERE fid = _fid0 AND week = _week;
IF(FOUND_ROWS() = 0) THEN
INSERT member_game_week VALUES (null, _week, _fid0, _w_point0, _w_win0, _w_lose0, SYSDATE());
ELSE
UPDATE member_game_week SET point = _w_point0, win = _w_win0, lose = _w_lose0, update_date = SYSDATE() WHERE fid = _fid0 AND week = _week LIMIT 1;
END IF;
#기타
-select 문은 기본적으로 락이 발생 하지 않는다.
-update, insert 문 락이 발생 할 수 있다.
-insert 와 undate 중 insert 의 속도가 빠르다.