개발을 할때 자동으로 키(KEY) 생성을 해야 할 경우 주로 사용한다.?
시퀀스는 주로 데이터베이스에서 기본 키 값을 생성하는 데 사용되며, 이는 기본 키의 고유성을 보장하기 위해 필요하다. 대부분의 데이터베이스 시스템에서 시퀀스를 지원하며, 사용 방법은 각 데이터베이스 시스템에 따라 다를 수 있다. 종종 시퀀스는 데이터베이스의 DDL(Data Definition Language)을 사용하여 생성하고 관리된다.
CREATE SEQUENCE member_seq START WITH 1 INCREMENT BY 1;
package hellojpa;
import jakarta.persistence.*;
@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "member_seq_generator")
@SequenceGenerator(name = "member_seq_generator", sequenceName = "member_seq", allocationSize = 1)
private Long id;
private String name;
// 생성자, getter 및 setter 메서드는 생략합니다.
}
시퀀스의 수정 및 삭제
START WITH는 수정 할 수 없다. START WITH 절이 없다는 점을 빼고는 CREATE SEQUENCE 문장과 같다.
시퀀스의 수정 및 삭제 예제
ALTER SEQUENCE sequence_name RESTART WITH new_start_value;
DROP SEQUENCE sequence_name;
시퀀스를 수정 또는 삭제할 때는 주의해야 한다.
시퀀스를 수정하거나 삭제하기 전에 해당 시퀀스를 사용하는 모든 테이블 및 애플리케이션에서의 영향을 고려해야 하기 때문이다.
특히 시퀀스를 삭제할 때는 해당 시퀀스를 사용하는 테이블에서 시퀀스를 참조하는 외래 키나 다른 제약 조건이 있는지 확인해야 한다.