Sök…


Tabellskapning med Primär nyckel

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

Alternativt kan du placera PRIMARY KEY begränsningen direkt i kolumndefinitionen:

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

Det rekommenderas att du använder små bokstäver för tabellen och alla kolumner. Om du använder stora bokstäver, t.ex. Person skulle du behöva radera namnet i dubbla citat ( "Person" ) i varje fråga eftersom PostgreSQL tvingar fram fall i fallet.

Visa tabelldefinition

Öppna kommandoradsverktyget psql som är anslutet till databasen där tabellen är. Skriv sedan följande kommando:

\d tablename

För att få utökad informationstyp

\d+ tablename

Om du har glömt tabellens namn, skriv bara \ d i psql för att få en lista med tabeller och vyer i den aktuella databasen.

Skapa tabell från välj

Låt oss säga att du har en tabell som heter 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)
);     

Du kan skapa en ny tabell över personer över 30 som denna:

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

Skapa ologgad tabell

Du kan skapa ologgade tabeller så att du kan göra tabellerna betydligt snabbare. Ologgade tabeller hoppar över att write-ahead logg vilket betyder att det inte är kraschsäkert och inte kan replikera.

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

Skapa en tabell som refererar till andra tabeller.

I det här exemplet kommer användartabellen att ha en kolumn som refererar till byråns tabell.

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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow