BigSerial Primary Key

2024-03-15

  • DB
  • CS
  • BE

BIGSERIAL PRIMARY KEY는 PostgreSQL에서 사용되는 데이터 타입으로, 테이블에 새로운 행이 추가될 때마다 고유 식별자를 생성하는 데 사용됩니다. BIGSERIAL은 자동으로 값을 1씩 증가시키는 정수 타입으로, 일반적인 SERIAL 타입보다 더 큰 범위의 값을 저장할 수 있는 BIGINT를 기반으로 합니다.

테이블 정의에서 BIGSERIAL PRIMARY KEY를 사용하면 다음과 같은 의미가 있습니다:

  • BIGSERIAL: 큰 범위의 정수 데이터 타입으로, 새 레코드가 테이블에 삽입될 때마다 자동으로 고유 번호를 생성합니다. BIGSERIAL은 1부터 시작하여 9223372036854775807까지 증가할 수 있습니다.

  • PRIMARY KEY: SQL 데이터베이스에서 테이블의 모든 레코드에서 해당 컬럼의 값이 유일해야 한다는 제약 조건을 의미합니다. 이는 또한 컬럼에 NULL 값을 포함할 수 없다는 것을 의미합니다. 기본 키는 테이블의 각 레코드를 식별하는 역할을 합니다.

BIGSERIAL PRIMARY KEY로 컬럼을 정의하면 PostgreSQL이 자동으로 각 레코드에 대한 고유 식별자를 생성하게 되며, 이는 큰 정수(64비트 크기)가 됩니다.

예를 들어, BIGSERIAL PRIMARY KEY가 있는 테이블을 생성하는 SQL 문은 다음과 같습니다:

CREATE TABLE my_table (
    id BIGSERIAL PRIMARY KEY,
    name TEXT NOT NULL
);

이 테이블에서 id 컬럼은 기본 키로 사용됩니다. 새로운 name이 삽입될 때마다 id에 대해 수동으로 값을 지정할 필요 없이 자동으로 고유한 번호를 할당합니다.

추가적으로 BIGSERIAL 데이터 타입은 주문 오더 번호와 같은 순차적인 식별자를 생성할 때 매우 유용합니다. 각각의 새로운 행에 대해 자동으로 고유한 번호를 할당함으로써, 주문이나 다른 연속적인 항목에 대해 쉽게 추적할 수 있는 순번을 제공합니다. 이는 특히 대규모 시스템에서 많은 양의 데이터를 처리할 때 유용하며, SERIAL 대신 BIGSERIAL을 사용하면 더 큰 범위의 순번을 안전하게 처리할 수 있습니다.

예를 들어, 주문 시스템에서 주문을 순차적으로 번호 매기기 위해 다음과 같은 테이블을 생성할 수 있습니다:

CREATE TABLE orders (
    order_id BIGSERIAL PRIMARY KEY,
    customer_id INT NOT NULL,
    order_date TIMESTAMP NOT NULL,
    ... -- 기타 주문 관련 필드
);

여기서 order_id 필드는 각 주문에 대해 자동으로 생성되는 고유한 순번을 보유하게 됩니다. 이는 주문이 생성될 때마다 1씩 증가하여 각 주문에 대한 고유 식별자로 사용됩니다. 이를 통해 데이터베이스에서 주문을 쉽게 찾고, 관련 정보를 관리하며, 데이터의 무결성을 유지할 수 있습니다.

비동기란 - 2 (...

Restful한 A...