source

CREATE TABLE 정의에서 인덱스를 생성할 수 있습니까?

manysource 2023. 5. 20. 10:56

CREATE TABLE 정의에서 인덱스를 생성할 수 있습니까?

작성 시 테이블의 일부 열에 인덱스를 추가하려고 합니다.CREATE TABLE 정의에 추가할 방법이 있습니까? 아니면 나중에 다른 쿼리를 사용하여 추가해야 합니까?

CREATE INDEX reply_user_id ON reply USING btree (user_id);

인덱스를 지정할 방법이 없습니다.CREATE TABLE통사론포스트그레그러나 SQL은 이 참고에서 설명한 대로 기본적으로 고유 제약 조건 및 기본 키에 대한 인덱스를 생성합니다.

PostgreSQL은 고유성을 적용하기 위해 각 고유 제약 조건 및 기본 키 제약 조건에 대한 인덱스를 자동으로 생성합니다.

이 외에도 고유하지 않은 인덱스를 원하는 경우 별도의 인덱스에 직접 만들어야 합니다.CREATE INDEX질의하다

아니요.

그러나 생성할 수 있습니다.unique인덱스가 생성되지만 이는 해당 인덱스가 제약 조건으로 분류되기 때문입니다.일반 인덱스는 만들 수 없습니다.

Peter Krauss는 공식적인 답변을 찾고 있습니다.

현대 구문(2020년)이 있으므로 postgresql.org/docs/current/sql-createtable.html 과 호환되는 예를 설명하고 보여 주십시오.

Postgre에 사용할 수 없는 인라인 인덱스 정의를 검색하고 있습니다.SQL 최신 버전 12까지.기본 인덱스를 생성하는 고유/기본 키 제약 조건을 제외합니다.

테이블 만들기

[ CONSTRINT constraint_name ] { CHECK (식) [ NO INTERGY ] | UNIQUE (컬럼n_name [, ...] ) index_parameters | PRIMARY KEY (컬럼n_name [, ...] ) index_parameters |


인라인 열 정의의 샘플 구문(여기서는 SQL Server):

CREATE TABLE tab(
  id INT PRIMARY KEY,                            -- constraint
  c INT INDEX filtered (c) WHERE c > 10,         -- filtered index
  b VARCHAR(10) NOT NULL INDEX idx_tab_b,        -- index on column
  d VARCHAR(20) NOT NULL,
  INDEX my_index NONCLUSTERED(d)                 -- index on column as separate entry
);

db<>디플 데모

인라인 인덱스란 무엇인가요? 이를 소개하는 이유는 매우 흥미롭습니다. 필 팩터 지음

언급URL : https://stackoverflow.com/questions/6239657/can-you-create-an-index-in-the-create-table-definition