20180423 [ORACLE] Sequece ๊ฐ๋ ๋ฐ ์์ฑ
๋ฐ์ดํฐ๋ฒ ์ด์ค/๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ช ๋ น์ด 2018. 4. 23. 11:10์ํ์ค?
์ ์ผํ(Unique)ํ ํค ๊ฐ์ ์์ฑํด์ฃผ๋ ์ค๋ผํด ๊ฐ์ฒด
์ํ์ค๋ฅผ ์์ฑํ๋ฉด ๊ธฐ๋ณธํค์ ๊ฐ์ด ์์ฐจ์ ์ผ๋ก ์ฆ๊ฐํ๋ ์ปฌ๋ผ์ ์๋์ ์ผ๋ก ์์ฑ ๊ฐ๋ฅํ๋ค.
๋ณดํต PK ๊ฐ์ ์์ฑํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ค.
๋ฉ๋ชจ๋ฆฌ์ cache ๋์์ ๋ ์ํ์ค ๊ฐ์ ์ก์ธ์ค ํจ์จ์ด ์ฆ๊ฐํ๋ค.
์ํ์ค๋ ํ ์ด๋ธ๊ณผ๋ ๋ ๋ฆฝ์ ์ผ๋ก ์ ์ฅ๋๊ณ ์ฌ์ฉ๋๋ค.
1 2 3 4 5 6 7 8 9 10 11 12 13 | SQL> CREATE SEQUENCE sequence_name 2 START WITH 1 3 INCREMENT BY 1 4 MAXVALUE 100 5 ; Sequence created. -------------------------------------- SQL> DROP SEQUENCE sequence_name; Sequence dropped. | cs |
- START WITN (n)
- n ์ ์ด๊ธฐํ ๊ฐ์ผ๋ก ์์
- INCREMENT BY (n)
- n ์ ์ฆ๊ฐํ๋ ๊ฐ์ผ๋ก ์์
- MAXVALUE (n)
- n ์ ์ํ์ค๊ฐ ๊ฐ ์ ์๋ ์ต๋ ๊ฐ์ผ๋ก ์ค์
์ํ์ค ์ฌ์ฉ ์
(1) 1๋ถํฐ ์์ํด์ 1์ฉ ์ฆ๊ฐํด ์ต๋ 100๊น์ง ์ฆ๊ฐํ๋ ์ํ์ค๋ฅผ ์์ฑ (์์ ๋ด์ฉ)
(2) ์ดํ ์ํ์ค๊ฐ ์ ์์ ์ผ๋ก ์์ฑ๋๊ณ ์๋์ง ์กฐํ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | SQL> SELECT sequence_name.NEXTVAL FROM DUAL; NEXTVAL ---------- 1 SQL> SELECT sequence_name.NEXTVAL FROM DUAL; NEXTVAL ---------- 2 SQL> SELECT sequence_name.NEXTVAL FROM DUAL; NEXTVAL ---------- 3 SQL> SELECT sequence_name.NEXTVAL FROM DUAL; NEXTVAL ---------- 4 | cs |
์์ ๋ด์ฉ์ ๋ณด๋ฉด ์กฐํ๋ ์ฌ๋ฐ๋ฅด๊ฒ ๋๊ณ ์๋ ๊ฒ์ ํ์ธ ๊ฐ๋ฅํ๋ค.
์ํ์ค๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ฑ๋กํ๊ธฐ
(1) ๊ฒ์ํ ํ ์ด๋ธ ์์ฑ
1 2 3 4 5 6 7 8 | CREATE TABLE WEB_BOARD_TB( CONTENT_NUM NUMBER(7) PRIMARY KEY, CONTENT_DATE Date DEFAULT SYSDATE, CONTENT_TITLE varchar2(100), CONTENT_WRITER varchar2(100), CONTENT_DETAIL varchar2(300), CONTENT_HIT NUMBER(4) DEFAULT 0 ); | cs |
(2) ์ํ์ค ์ด์ฉ ๋ฐ์ดํฐ ์ฝ์
1 2 3 4 | INSERT INTO WEB_BOARD_TB (CONTENT_NUM, CONTENT_TITLE, CONTENT_WRITER, CONTENT_DETAIL) VALUES (CONTENT_SEQ.NEXTVAL, '๊ฒ์๊ธ ์ ๋ชฉ', '๊ฒ์๊ธ ์์ฑ์', '๊ฒ์๊ธ ๋ด์ฉ'); | cs |
(3) (2)์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ๊ฐ ์ฝ์ ํ ์กฐํ
๊ตณ์ด ๋ฐ๋ก ๋ณด์ฌ์ฃผ์ง ์๋๋ผ๋ ๋์ด์๋๊ฑธ ํ์ธ ๊ฐ๋ฅํ๋ค.
ํ์ฌ ์์ฑ๋ ๋ชจ๋ ์ํ์ค ํ์ธ
1 2 3 4 5 | SQL> SELECT * FROM user_sequences; SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY CY OR CACHE_SIZE LAST_NUMBER --------------- ---------- ---------- ------------ -- -- ---------- ----------- CONTENT_SEQ 1 100000 1 N N 20 41 | cs |
.NEXTVAL & .CURRVAL
๊ทธ ๋ค์ ์ํ์ค๋ฅผ ์ถ๋ ฅ, ํ์ฌ ์ธ์ ์ด ๊ฐ์ง๊ณ ์๋ ์ต์ข ์ํ์ค ์ถ๋ ฅํ๋ค. ๋ง์ฝ ํ๋ฒ๋ NEXTVAL ์ ์๊ตฌํ ์ ์๋ค๋ฉด ์๋ฌ๊ฐ ๋ํ๋๋ฉฐ ํ์ฌ ์ธ์ ์ด ๋ณด์ ํ๊ณ ์๋ CURRVAL ์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | SQL> SELECT CONTENT_SEQ.NEXTVAL FROM dual; NEXTVAL ---------- 26 SQL> SELECT CONTENT_SEQ.NEXTVAL FROM dual; NEXTVAL ---------- 27 SQL> SELECT CONTENT_SEQ.CURRVAL FROM dual; CURRVAL ---------- 27 | cs |
'๋ฐ์ดํฐ๋ฒ ์ด์ค > ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ช ๋ น์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
20180220 [ORACLE] ์ฌ์ฉ์ ๊ถํ (0) | 2018.02.20 |
---|---|
20180220 [ORACLE] TABLESPACE ๊ด๋ จ ๋ช ๋ น์ด (0) | 2018.02.20 |
20180219 [ORACLE] AutoTrace (0) | 2018.02.19 |