티스토리 뷰

728x90

한 컬럼 값의 최댓값을 가져와서 +1을 해줘야 할 때 바로 생각해 낼 수 있는 방법은 아래와 같이 서브쿼리를 사용하는 방법이다.

UPDATE tb_key_generate
	SET
		NEXT_ID = (SELECT NEXT_ID FROM tb_bot_key WHERE name = 'injeong') + 1
	WHERE name = 'injeong';

그러나 항상 서브쿼리는 성능이 안좋다는 이야기를 많이 들어서 변경 방법을 찾아보니 join으로 변경 할 수 있었다.

(사실 이정도 쿼리는 성능상의 차이가 없다. 하지만 조인으로 변경 할 수 있는지를 아는것과 모르는것은 하늘과 땅차이라고 생각한다. )

UPDATE tb_key_generate t1 INNER JOIN tb_key_generate t2
ON t1.name = t2.name
SET t1.NEXT_ID = t2.NEXT_ID + 1
WHERE t1.name = 'injeong';

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함