Sequence ์ฌ์ฉ ๋ฐฉ๋ฒ
ํ
์คํธ ํ๋ค๋ณด๋ฉด seq ๊ฐ ์ง์์ ์ผ๋ก ๋์ด๋๊ฑฐ๋ ์ค๋ณต๊ฐ์ ํผํ๊ธฐ ์ํด ์์ ๊ธฐ์ค๋ถํฐ seq ๋ฅผ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
ํ
์คํธ๊ฐ ๋๋๊ฒ ๋๋ฉด ์์ฑ์ 1 ์ด๋ผ๋ ๊ฐ์ผ๋ก ๋๋ฆฌ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก Sequence ๊ตฌ๋ฌธ์ ํ์ฉํ ์ ์๋ค.
๊ตฌ๋ฌธ
- create : CREATE SEQUENCE seq_name
- nextval : nextval('seq_name')
- currval : currval('seq_name')
- setval : setval('seq_name', seq_val, [true/false])
- drop : DROP SEQUENCE seq_name
์ํ์ค ์์ฑ, ์ญ์
CREATE SEQUENCE mine_seq;
DROP SEQUENCE mine_seq;
์ํ์ค ํ์ฌ๊ฐ, ๋ค์๊ฐ
SELECT currval('mine_seq');
SELECT nextval('mine_seq');
currval() ์ฌ์ฉ์ ์๋ฌ ๋ฐ์ ๊ฒฝ์ฐ
ERROR: ์ค๋ฅ: "mine_seq" ์ํ์ค์ currval ๊ฐ์ด ํ์ฌ ์ธ์
์ ์ง์ ๋์ด ์์ง ์์ต๋๋ค
SQL state: 55000
์ด์ ์ผ๋ก ๋์๊ฐ ๊ฐ์ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ์์ผ๋ก nextval() ๋ฅผ ํ ๋ฒ ์คํํ ๋ค์ ๋ค์ ์คํํ๋ฉด ๋๋ค.
์ํ์ค ์ด๊ธฐํ
SELECT setval('mine_seq', 1, true); -- nextval('mine_seq') = 2
SELECT setval('mine_seq', 1, false); -- nextval('mine_seq') = 1
- true : ์ด๊ธฐํ ํ nextval๋ฅผ ์ฌ์ฉํ ๋ ์ด๊ธฐํ๋ ๊ฐ(1)์์ +1์ ํ์ฌ ์ฌ์ฉ๋๋ค.
- false : ์ด๊ธฐํ ํ nextval๋ฅผ ์ฌ์ฉํ ๋ ์ด๊ธฐํ๋ ๊ฐ(1)์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค.
์ถ์ฒ | https://mine-it-record.tistory.com/341