Zoeken…


Tabellen maken met primaire sleutel

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

Als alternatief kunt u de PRIMARY KEY beperking direct in de kolomdefinitie plaatsen:

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

Het wordt aanbevolen om kleine letters te gebruiken voor de tabel en alle kolommen. Als u hoofdletters gebruikt, zoals Person u die naam in dubbele aanhalingstekens ( "Person" ) in elke query plaatsen, omdat PostgreSQL afdwingen van hoofdletters afdwingt.

Toon tabeldefinitie

Open het psql opdrachtregelprogramma dat is verbonden met de database waar uw tabel zich bevindt. Typ vervolgens de volgende opdracht:

\d tablename

Om uitgebreid informatietype te krijgen

\d+ tablename

Als u de naam van de tabel bent vergeten, typt u \ d in psql om een lijst met tabellen en weergaven in de huidige database te verkrijgen.

Maak een tabel van selecteren

Stel dat u een tabel hebt met de naam persoon:

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

U kunt als volgt een nieuwe tabel met personen ouder dan 30 maken:

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

Maak een niet-geregistreerde tabel

U kunt niet-geregistreerde tabellen maken, zodat u de tabellen aanzienlijk sneller kunt maken. Niet-geregistreerde tabel slaat write-ahead log over, wat betekent dat het niet crashveilig is en niet kan repliceren.

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

Maak een tabel die verwijst naar een andere tabel.

In dit voorbeeld heeft de gebruikerstabel een kolom die verwijst naar de Agency-tabel.

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow