Suche…


Tabellenerstellung mit Primärschlüssel

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

Alternativ können Sie die PRIMARY KEY Einschränkung direkt in die 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)
);

Es wird empfohlen, dass Sie für die Tabelle und alle Spalten Kleinbuchstaben verwenden. Wenn Sie Großbuchstaben wie Person Sie diesen Namen in doppelte Anführungszeichen ( "Person" ) in jede Abfrage einschließen, da PostgreSQL die Fallverfolgung erzwingt.

Tabellendefinition anzeigen

Öffnen Sie das Befehlszeilentool psql , das mit der Datenbank verbunden ist, in der sich Ihre Tabelle befindet. Geben Sie dann den folgenden Befehl ein:

\d tablename

Um einen erweiterten Informationstyp zu erhalten

\d+ tablename

Wenn Sie den Namen der Tabelle vergessen haben, geben Sie einfach \ d in psql ein, um eine Liste der Tabellen und Ansichten in der aktuellen Datenbank zu erhalten.

Tabelle erstellen aus auswählen

Nehmen wir an, Sie haben eine Tabelle namens 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)
);     

Sie können eine neue Tabelle mit Personen über 30 wie folgt erstellen:

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

Erstellen Sie eine nicht protokollierte Tabelle

Sie können nicht protokollierte Tabellen erstellen, um die Tabellen erheblich schneller zu machen. Nicht protokollierte Tabelle überspringt das write-ahead Protokoll, sodass es nicht absturzsicher ist und nicht repliziert werden kann.

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

Erstellen Sie eine Tabelle, die auf andere Tabelle verweist.

In diesem Beispiel enthält die Benutzertabelle eine Spalte, die auf die Agency-Tabelle verweist.

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow