티스토리 뷰

사용하던 Oracle 11g에서 업그레이드 되어 시퀀스로만 관리되었던 PK를 12c 이상부터 지원되는 Identity Column 속성을 사용할 수 있어 해당 Sequence와 비교해보았다.

시퀀스(Sequence):

  • 시퀀스는 데이터베이스 객체로, 정수 값 시퀀스를 생성하는 데 사용됩니다.
  • 보통 특정 테이블의 열과 연결되지 않고, 데이터베이스 레벨에서 관리됩니다.
  • 시퀀스는 다양한 테이블에서 동일한 시퀀스를 사용할 수 있습니다.
  • 시퀀스는 순차적으로 증가하거나 감소하는 정수 값을 생성하며, 다음 값을 미리 예측할 수 있습니다.
  • 주로 기본 키( primary key )를 생성하기 위해 사용됩니다.
CREATE SEQUENCE employee_id_seq
START WITH 1
INCREMENT BY 1
NOMAXVALUE;

IDENTITY Column(IDENTITY 컬럼):

  • Oracle 12c부터 도입된 개념으로 특정 열에 IDENTITY 속성을 부여하여, 자동으로 증가하는 값을 생성합니다.
  • 열 당 하나의 IDENTITY 속성만 설정할 수 있으며, 일반적으로 기본 키(PK)에 사용합니다.
  • 열의 데이터 유형은 일반적으로 정수(Integer)입니다.
  • IDENTITY 속성은 시퀀스와 달리 데이터베이스 레벨에서 관리되는 것이 아니라 해당 테이블의 열 레벨에서 관리됩니다.
CREATE TABLE employees (
    employee_id NUMBER GENERATED BY DEFAULT AS IDENTITY,
    first_name VARCHAR2(50),
    last_name VARCHAR2(50)
);

MySQL AUTO_INCREMENT:

  • 열을 생성할 때나 ALTER TABLE 문을 사용하여 나중에 AUTO_INCREMENT 속성을 추가할 수 있습니다.
  • AUTO_INCREMENT 속성은 해당 테이블의 column에 적용됩니다.
CREATE TABLE employees (
      employee_id INT AUTO_INCREMENT PRIMARY KEY,
      first_name VARCHAR(50),
      last_name VARCHAR(50)
);

#oracle #autoincreament #identity_column #sequence

'공부합시다' 카테고리의 다른 글

Bitwarden-cli 사용하기  (0) 2024.08.22
TDD AAA 패턴  (0) 2024.07.04
VIM 명령어  (0) 2023.07.07
git merged branch 삭제하기  (0) 2022.04.18
JS Array 중복 제거하는 방법 ES6  (0) 2021.08.05
댓글