Szukaj…


Tworzenie tabeli za pomocą klucza podstawowego

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)
);

Alternatywnie możesz umieścić PRIMARY KEY bezpośrednio w definicji kolumny:

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)
);

Zaleca się stosowanie małych liter w tabeli i we wszystkich kolumnach. Jeśli użyjesz wielkich liter, takich jak Person będziesz musiał zawijać je w cudzysłowie ( "Person" ) w każdym zapytaniu, ponieważ PostgreSQL wymusza składanie liter.

Pokaż definicję tabeli

Otwórz narzędzie wiersza polecenia psql podłączone do bazy danych, w której znajduje się twoja tabela. Następnie wpisz następujące polecenie:

\d tablename

Aby uzyskać rozszerzony typ informacji

\d+ tablename

Jeśli zapomniałeś nazwy tabeli, po prostu wpisz \ d w psql, aby uzyskać listę tabel i widoków w bieżącej bazie danych.

Utwórz tabelę z select

Załóżmy, że masz tabelę o nazwie osoba:

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)
);     

Możesz utworzyć nową tabelę osób powyżej 30. roku życia w następujący sposób:

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

Utwórz niezalogowany stół

Możesz tworzyć niezalogowane tabele, dzięki czemu tabele mogą być znacznie szybsze. Niezalogowany stół pomija pisanie dziennika z write-ahead co oznacza, że nie jest bezpieczny w razie awarii i nie może się replikować.

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)
);

Utwórz tabelę, która odwołuje się do innej tabeli.

W tym przykładzie tabela użytkowników będzie miała kolumnę, która odwołuje się do tabeli agencji.

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow