postgresql
Tabell skapande
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.
)