postgresql
Création de table
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.
)