수색…


기본 키로 테이블 생성

CREATE TABLE person (
    person_id BIGINT NOT NULL,
    last_name VARCHAR(255) NOT NULL,
    first_name VARCHAR(255),
    address VARCHAR(255),
    city VARCHAR(255),
    PRIMARY KEY (person_id)
);

또는 PRIMARY KEY 제약 조건을 열 정의에 직접 배치 할 수 있습니다.

CREATE TABLE person (
    person_id BIGINT NOT NULL PRIMARY KEY,
    last_name VARCHAR(255) NOT NULL,
    first_name VARCHAR(255),
    address VARCHAR(255),
    city VARCHAR(255)
);

테이블 및 모든 열에 소문자 이름을 사용하는 것이 좋습니다. Person 과 같은 대문자 이름을 사용하면 PostgreSQL이 대소 문자를 구분하기 때문에 각 쿼리마다 큰 따옴표 ( "Person" )로 묶어야합니다.

테이블 정의 표시

테이블이있는 데이터베이스에 연결된 psql 명령 줄 도구를 엽니 다. 그런 다음 다음 명령을 입력하십시오.

\d tablename

확장 정보 유형을 얻으려면

\d+ tablename

테이블의 이름을 잊어 버린 경우 psql에 \ d를 입력하면 현재 데이터베이스의 테이블과 뷰 목록을 얻을 수 있습니다.

선택에서 표 만들기

person이라는 테이블이 있다고 가정 해 보겠습니다.

CREATE TABLE person (
    person_id BIGINT NOT NULL,
    last_name VARCHAR(255) NOT NULL,
    first_name VARCHAR(255),
    age INT NOT NULL,
    PRIMARY KEY (person_id)
);     

다음과 같이 30 명이 넘는 사람들의 새로운 테이블을 만들 수 있습니다 :

CREATE TABLE people_over_30 AS SELECT * FROM person WHERE age > 30;

로그되지 않은 테이블 만들기

로그되지 않은 테이블을 작성하여 테이블을 상당히 빨리 작성할 수 있습니다. 로그되지 않은 테이블은 write-ahead 로그 write-ahead 건너 뜁니다. 이는 충돌시 안전하지 않고 복제 할 수 없음을 의미합니다.

CREATE UNLOGGED TABLE person (
    person_id BIGINT NOT NULL PRIMARY KEY,
    last_name VARCHAR(255) NOT NULL,
    first_name VARCHAR(255),
    address VARCHAR(255),
    city VARCHAR(255)
);

다른 테이블을 참조하는 테이블을 만듭니다.

이 예에서 사용자 테이블에는 Agency 테이블을 참조하는 열이 있습니다.

CREATE TABLE agencies ( -- first create the agency table
  id SERIAL PRIMARY KEY,
  name TEXT NOT NULL
)

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  agency_id NOT NULL INTEGER REFERENCES agencies(id) DEFERRABLE INITIALLY DEFERRED -- this is going to references your agency table.
)


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow