[PostgreSQL] ์‹œํ€€์Šค

์‹œํ€€์Šค๋Š” postgres์˜ ํ•„์ˆ˜๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋‹ค.

serial ํƒ€์ž…์œผ๋กœ ์ปฌ๋Ÿผ์„ ์ƒ์„ฑํ•˜๋ฉด ๋””ํดํŠธ๊ฐ’์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊น”๋ฆฐ ๊ฒƒ์„ ๋ณด์•˜์„ ๊ฒƒ์ด๋‹ค.

์ €๊ธฐ์„œ Foos_id_seq๊ฐ€ ๋ฐ”๋กœ ์‹œํ€€์Šค๋‹ค.
๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ๊ทธ๊ฒƒ์„ ์ž๋™์œผ๋กœ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด๋‘” ๊ฒƒ์ด๋‹ค.

์—ฌ๊ธฐ์„  ์‹œ๋ฆฌ์–ผ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋Œ€๊ฐ• ์‹œํ€€์Šค๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฒ•์„ ์ •๋ฆฌํ•œ๋‹ค.
์‹œํ€€์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  nextval์ด๋ผ๋Š” ํ•จ์ˆ˜์— ์‹œํ€€์Šค์˜ ์ด๋ฆ„์„ ๋„ฃ์œผ๋ฉด ์‹œํ€€์Šค์˜ ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
1, 2, 3, ... ์ˆœ์„œ๋Œ€๋กœ ๋ง์ด๋‹ค.

currval์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ค์ง€ ์•Š๊ณ  ํ˜„์žฌ ๊ฐ’๋งŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  setval์„ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์œ„์ ์œผ๋กœ ์‹œํ€€์Šค์— ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ ์ธ์œ„์ ์œผ๋กœ ์ตœ์†Ÿ๊ฐ’๊ณผ ์ตœ๋Œ“๊ฐ’ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
์ง€์ •ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๋ฒ”์œ„๋Š” 1..9223372036854775807๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚ฌ์„ ๊ฒฝ์šฐ, ๋‹ค์‹œ ํ•œ ๋ฐ”ํ€ด๋ฅผ ๋Œ๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
cycle ์˜ต์…˜์„ ์ฃผ๋ฉด ๋œ๋‹ค.

start๋กœ ์‹œ์ž‘๊ฐ’์„ ์ค„ ์ˆ˜๋„ ์žˆ๊ณ 

์ฆ๊ฐ€์น˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์ฆ๊ฐ€์น˜๋ฅผ ์Œ์ˆ˜๋กœ ์ฃผ๋ฉด ์Œ์ˆ˜ ์‹œํ€€์Šค๊ฐ€ ๋œ๋‹ค.

๊ทธ๋ ‡๋‹ค.

์‹œํ€€์Šค๋ฅผ ๋‚ ๋ฆฌ๋ ค๋ฉด ์—ญ์‹œ drop์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.


์ฐธ์กฐ
https://www.postgresql.org/docs/9.5/sql-createsequence.html