[์ ๋ณด] SQL ๋ฐ์ดํฐ ํค ๊ฐ ๋น ๊ณต๋ฐฑ ์ฑ์ฐ๊ธฐ
๋ง์ฝ ๋น ์๋ฆฌ๋ฅผ ํ ์นธ์ฉ ๋น๊ธฐ๋ ๊ณผ์ ์์ ๋ ๋ค๋ฅธ ๋น ์๋ฆฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด, ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์๋ ๋ฐ๋ณต์ ์ผ๋ก ๋น ์๋ฆฌ๋ฅผ ๊ฒ์ฌํ๊ณ ํ์ํ ๊ฒฝ์ฐ ๋น ์๋ฆฌ๋ฅผ ์ฑ์์ฃผ๋ ์์
์ ์ํํด์ผ ํฉ๋๋ค.
๋ค์์ ๋น ์๋ฆฌ๋ฅผ ๊ฒ์ฌํ๊ณ ํ์ํ ๊ฒฝ์ฐ ๋น ์๋ฆฌ๋ฅผ ์ฑ์์ฃผ๋ ์์ ์ฝ๋์
๋๋ค.
SET @current_no = 0;
UPDATE ํ
์ด๋ธ์ด๋ฆ SET no = (@current_no := @current_no + 1) WHERE no IS NOT NULL ORDER BY no ASC;
์ ์ฝ๋๋ ๋จผ์ ๋ณ์ @current_no๋ฅผ 0๋ก ์ด๊ธฐํํ ํ, no ๊ฐ์ด NULL์ด ์๋ ๋ชจ๋ ํ์ ๋ฒํธ ์์๋๋ก ์
๋ฐ์ดํธ ํฉ๋๋ค. ์ด๋, ์
๋ฐ์ดํธํ ๋๋ง๋ค @current_no ๋ณ์๋ฅผ 1์ฉ ์ฆ๊ฐ์์ผ์ ๋ฒํธ๋ฅผ ๋ถ์ฌํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋น ์๋ฆฌ๊ฐ ์๋๋ผ๋ ๋ฒํธ๋ฅผ ์์๋๋ก ์ฑ์ ๋ฃ์ ์ ์์ต๋๋ค.
์ฃผ์์ฌํญ์ผ๋ก๋ ์๋์ฆ๊ฐ ์ ๋ต์ ์ฌ์ฉํ๊ณ ์์ ๋ AUTO_INCREMENT ๊ฐ์ ์กฐ์ ํด์ฃผ์ด์ผํฉ๋๋ค. ์กฐ์ ํด ์ฃผ์ง ์์ผ๋ฉด ๋ค์์ ๋ค์ด์ค๋ ๊ฐ์ ์กฐ์ ์ ๋ง์ง๋ง ๊ฐ์ ๊ธฐ์ค์ผ๋ก id ๊ฐ์ด ์ฆ๊ฐํ๊ฒ ๋ฉ๋๋ค.
ALTER TABLE article_entity AUTO_INCREMENT = 95;