postgresql
테이블 생성
수색…
기본 키로 테이블 생성
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