1. μνμ€(Sequence) μκ°
μνμ€(Sequence)λ μ€λΌν΄ λ°μ΄ν°λ² μ΄μ€μμ μλ λ²νΈ μμ±μ μν΄ μ¬μ©λλ κ°μ²΄μ λλ€. μνμ€λ κ³ μ ν μ«μ κ°μ μμ±νλ©°, μΌλ°μ μΌλ‘ ν μ΄λΈμ κΈ°λ³Έ ν€ κ°μΌλ‘ μ¬μ©λ©λλ€. μνμ€λ λ°μ΄ν°μ μΌλ ¨λ²νΈλ₯Ό μ½κ² μμ±νκ³ κ΄λ¦¬ν μ μλλ‘ λμμ€λλ€.
μνμ€λ μλμΌλ‘ μ¦κ°νλ κ°μΌλ‘ μ¬μ©λλ©°, μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°μ μμλ₯Ό μ μ§νκ³ μ€λ³΅μ λ°©μ§ν μ μμ΅λλ€. μνμ€λ μ£Όλ‘ ν μ΄λΈμ κΈ°λ³Έ ν€, μΈλ ν€ λλ λ€λ₯Έ 컬λΌμ κΈ°λ³Έκ°μΌλ‘ μ¬μ©λ©λλ€.
μνμ€λ μ€λΌν΄ λ°μ΄ν°λ² μ΄μ€μμ μμ½κ² μμ±νκ³ κ΄λ¦¬ν μ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°μ μΌκ΄μ±κ³Ό μ νμ±μ μ μ§ν μ μμ΅λλ€. λ€μμΌλ‘ μνμ€λ₯Ό μμ±νλ λ°©λ²μ λν΄ μμλ³΄κ² μ΅λλ€.
2. μνμ€ μμ±νκΈ°
μνμ€λ₯Ό μμ±νκΈ° μν΄μλ CREATE SEQUENCE λ¬Έμ μ¬μ©ν΄μΌ ν©λλ€. μνμ€ μμ± μ μ§μ ν μ μλ λ§μ μ΅μ μ΄ μμ§λ§, κ°μ₯ κΈ°λ³Έμ μΈ μ΅μ λ§μ μ¬μ©νμ¬ μμ λ₯Ό μ€λͺ νκ³ μ ν©λλ€.
μλλ μνμ€λ₯Ό μμ±νκΈ° μν κΈ°λ³Έμ μΈ λ¬Έλ²μ λλ€.
CREATE SEQUENCE sequence_name
START WITH initial_value
INCREMENT BY increment_value
[ MINVALUE { value | NOMINVALUE } ]
[ MAXVALUE { value | NOMAXVALUE } ]
[ CYCLE | NOCYCLE ]
[ CACHE { value | NOCACHE } ];
sequence_name
: μμ±ν μνμ€μ μ΄λ¦μ μ§μ ν©λλ€.initial_value
: μνμ€κ° μμλ κ°μ λλ€.increment_value
: μνμ€κ° μ¦κ°ν κ°μ λλ€.MINVALUE
: μνμ€μ μ΅μκ°μ μ§μ ν©λλ€.MAXVALUE
: μνμ€μ μ΅λκ°μ μ§μ ν©λλ€.CYCLE
: μνμ€κ° μ΅λκ°μ λλ¬νλ©΄ λ€μ μ΅μκ°λΆν° μμνλμ§ μ¬λΆλ₯Ό μ§μ ν©λλ€.CACHE
: μνμ€ κ°μ μΊμνμ¬ μ±λ₯μ ν₯μμν¬μ§ μ¬λΆλ₯Ό μ§μ ν©λλ€.
μλ₯Ό λ€μ΄, μμ κ°μ΄ 1μ΄κ³ , 1μ© μ¦κ°νλ μνμ€λ₯Ό μμ±νκ³ μ νλ€λ©΄ λ€μκ³Ό κ°μ΄ μ½λλ₯Ό μμ±ν μ μμ΅λλ€.
CREATE SEQUENCE my_sequence
START WITH 1
INCREMENT BY 1;
μ΄λ κ² μνμ€λ₯Ό μμ±νλ©΄ my_sequence
λΌλ μ΄λ¦μ μνμ€κ° μμ±λκ³ , ν΄λΉ μνμ€λ₯Ό μ‘°ννκ±°λ μμ , μμ ν μ μμ΅λλ€. λ€μμΌλ‘ μνμ€λ₯Ό μ‘°ννλ λ°©λ²μ λν΄ μμλ³΄κ² μ΅λλ€.
3. μνμ€ μ‘°ννκΈ°
μμ±ν μνμ€λ₯Ό μ‘°ννκΈ° μν΄μλ λ€μκ³Ό κ°μ SQLλ¬Έμ μ¬μ©ν©λλ€.
SELECT sequence_name, min_value, max_value, increment_by, last_number,
cache_size, cycle_flag
FROM user_sequences
WHERE sequence_name = 'my_sequence';
μμ SQLλ¬Έμ user_sequences
λΌλ μμ€ν
λ·°λ₯Ό μ΄μ©νμ¬ μνμ€μ μ 보λ₯Ό μ‘°ννλ λ°©λ²μ 보μ¬μ€λλ€. μ€ν κ²°κ³Όλ‘λ μνμ€μ μ΄λ¦(sequence_name
), μ΅μκ°(min_value
), μ΅λκ°(max_value
), μ¦κ°κ°(increment_by
), λ§μ§λ§ λ²νΈ(last_number
), μΊμ ν¬κΈ°(cache_size
), μν μ¬λΆ(cycle_flag
) λ±μ νμΈν μ μμ΅λλ€.
μλ₯Ό λ€μ΄, μ΄λ¦μ΄ 'my_sequence'μΈ μνμ€λ₯Ό μ‘°ννκ³ μ νλ€λ©΄ μλμ κ°μ΄ μ½λλ₯Ό μμ±ν μ μμ΅λλ€.
SELECT sequence_name, min_value, max_value, increment_by, last_number,
cache_size, cycle_flag
FROM user_sequences
WHERE sequence_name = 'my_sequence';
μμ SQLλ¬Έμ μ€ννλ©΄ 'my_sequence'λΌλ μ΄λ¦μ μνμ€μ λν μμΈν μ 보λ₯Ό νμΈν μ μμ΅λλ€.
μνμ€λ₯Ό μ‘°ννλ λ°©λ²μ λν΄ μμ보μμΌλ, λ€μμΌλ‘ μνμ€μ κ°μ μ¬μ©νλ λ°©λ²μ λν΄ μμλ³΄κ² μ΅λλ€.
4. μνμ€ μμ νκΈ°
μνμ€λ₯Ό μμ νκΈ° μν΄μλ ALTER SEQUENCE λ¬Έμ μ¬μ©ν΄μΌ ν©λλ€. μνμ€λ₯Ό μμ ν λλ λ€μκ³Ό κ°μ μ΅μ μ μ§μ ν μ μμ΅λλ€.
START WITH
: μνμ€κ° μμλ κ°INCREMENT BY
: μνμ€κ° μ¦κ°ν κ°MINVALUE
: μνμ€μ μ΅μκ°MAXVALUE
: μνμ€μ μ΅λκ°CYCLE
: μνμ€κ° μ΅λκ°μ λλ¬νλ©΄ λ€μ μ΅μκ°λΆν° μμνλμ§ μ¬λΆCACHE
: μνμ€ κ°μ μΊμνμ¬ μ±λ₯μ ν₯μμν¬μ§ μ¬λΆ
μλ₯Ό λ€μ΄, μ΄λ¦μ΄ 'my_sequence'μΈ μνμ€μ μ¦κ°κ°μ 2λ‘ μμ νκ³ μΆλ€λ©΄ λ€μκ³Ό κ°μ΄ μ½λλ₯Ό μμ±ν μ μμ΅λλ€.
ALTER SEQUENCE my_sequence
INCREMENT BY 2;
μμ ALTER SEQUENCE λ¬Έμ μ€ννλ©΄ 'my_sequence'λΌλ μ΄λ¦μ μνμ€μ μ¦κ°κ°μ΄ 2λ‘ λ³κ²½λ©λλ€. λ€λ₯Έ μ΅μ λ€λ λ§μ°¬κ°μ§λ‘ λμΌν λ°©μμΌλ‘ μμ ν μ μμ΅λλ€.
μνμ€λ₯Ό μμ νλ λ°©λ²μ λν΄ μμ보μμΌλ, λ€μμΌλ‘ μνμ€λ₯Ό μμ νλ λ°©λ²μ λν΄ μμλ³΄κ² μ΅λλ€.
5. μνμ€ μμ νκΈ°
μνμ€λ₯Ό μμ νκΈ° μν΄μλ DROP SEQUENCE λ¬Έμ μ¬μ©ν΄μΌ ν©λλ€. μνμ€λ₯Ό μμ ν λλ λ€μκ³Ό κ°μ μ½λλ₯Ό μ¬μ©ν©λλ€.
DROP SEQUENCE sequence_name;
μμ DROP SEQUENCE λ¬Έμμ sequence_name
μ μμ ν μνμ€μ μ΄λ¦μ λνλ
λλ€. μλ₯Ό λ€μ΄, μ΄λ¦μ΄ 'my_sequence'μΈ μνμ€λ₯Ό μμ νκ³ μ νλ€λ©΄ λ€μκ³Ό κ°μ΄ μ½λλ₯Ό μμ±ν μ μμ΅λλ€.
DROP SEQUENCE my_sequence;
μμ μ½λλ₯Ό μ€ννλ©΄ 'my_sequence'λΌλ μ΄λ¦μ μνμ€κ° μμ λ©λλ€. μνμ€ μμ μ΄νμλ ν΄λΉ μνμ€μ μν΄ μμ±λ λͺ¨λ κ°μ μ¬μ©ν μ μκ² λ©λλ€. λλ¬Έμ μνμ€λ₯Ό μμ νκΈ° μ μ μ΄λ ν μ΄μ λ‘ μνμ€λ₯Ό μ¬μ©νλμ§λ₯Ό μΆ©λΆν κ²ν ν΄μΌ ν©λλ€.
μνμ€λ₯Ό μμ νλ λ°©λ²μ λν΄ μμ보μμ΅λλ€. μ΄μ μνμ€μ μ¬μ© μμλ₯Ό μ΄ν΄λ³΄λλ‘ νκ² μ΅λλ€.
λκΈ