Поиск…


Создание таблицы с помощью основного ключа

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 вы должны были бы обернуть это имя в двойные кавычки ( "Person" ) в каждом запросе, потому что PostgreSQL обеспечивает свертывание фреймов.

Показать определение таблицы

Откройте инструмент командной строки psql , подключенный к базе данных, где находится ваша таблица. Затем введите следующую команду:

\d tablename

Чтобы получить расширенный тип информации

\d+ tablename

Если вы забыли имя таблицы, просто введите \ d в psql, чтобы получить список таблиц и представлений в текущей базе данных.

Создать таблицу из выбранного

Допустим, у вас есть таблица, называемая человеком:

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 журнала записи, что означает, что он не является аварийным и неспособен реплицироваться.

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

Создайте таблицу, которая ссылается на другую таблицу.

В этом примере таблица пользователя будет иметь столбец, который ссылается на таблицу Агентства.

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