티스토리 뷰
사용하던 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 |
댓글
- Total
- Today
- Yesterday
TAG
- django
- Laravel
- 테스트_다중트랜잭션
- 메일
- 나는욕심쟁이
- POP3
- composer-self-update
- l5-swagger
- bitwarden-cli
- 둘이상인증한번에사용하기
- addMonthWithoutOverflow
- graphql
- addMonth
- php
- exception-test
- session+token authorize
- 자바스크립트
- password-manager
- vim
- graphql-php
- Python
- 정규식
- php-laravel
- 정의
- aaa패턴
- laravel-test
- l5-swagger-response
- MySQL
- 라라벨
- redis
공지사항