Recherche…


Création de table avec clé primaire

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

Vous pouvez également placer la contrainte PRIMARY KEY directement dans la définition de colonne:

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

Il est recommandé d'utiliser des noms de minuscules pour la table et toutes les colonnes. Si vous utilisez des noms en majuscules tels que Person vous devrez insérer ce nom entre guillemets ( "Person" ) dans chaque requête, car PostgreSQL applique le pliage de casse.

Afficher la définition de la table

Ouvrez l'outil de ligne de commande psql connecté à la base de données où se trouve votre table. Ensuite, tapez la commande suivante:

\d tablename

Pour obtenir un type d'informations étendu

\d+ tablename

Si vous avez oublié le nom de la table, tapez simplement \ d dans psql pour obtenir une liste de tables et de vues dans la base de données actuelle.

Créer une table à partir de select

Disons que vous avez une table appelée personne:

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

Vous pouvez créer une nouvelle table de personnes de plus de 30 ans comme ceci:

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

Créer un tableau non identifié

Vous pouvez créer des tableaux non liés afin de rendre les tableaux beaucoup plus rapides. Table unlogged saute l' écriture write-ahead journal qui signifie qu'il est pas Glissières de sécurité et incapable de se répliquer.

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

Créez une table qui référence une autre table.

Dans cet exemple, User Table aura une colonne qui référence la table Agency.

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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow