Ricerca…


Creazione di tabelle con chiave primaria

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

In alternativa, è possibile posizionare il vincolo PRIMARY KEY direttamente nella definizione della colonna:

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

Si consiglia di utilizzare nomi in minuscolo per la tabella e tutte le colonne. Se si utilizzano nomi maiuscoli come Person si dovrà racchiudere tale nome tra virgolette ( "Person" ) in ogni singola query perché PostgreSQL applica la piegatura del caso.

Mostra la definizione della tabella

Apri lo strumento da riga di comando di psql collegato al database in cui si trova la tua tabella. Quindi digitare il seguente comando:

\d tablename

Per ottenere un tipo di informazioni esteso

\d+ tablename

Se hai dimenticato il nome della tabella, digita \ d in psql per ottenere un elenco di tabelle e viste nel database corrente.

Crea tabella da selezionare

Diciamo che hai un tavolo chiamato persona:

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

Puoi creare una nuova tabella di persone con più di 30 in questo modo:

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

Crea una tabella non loggata

È possibile creare tabelle non registrate in modo da rendere le tabelle notevolmente più veloci. Salti di tabella non loggati che write-ahead log di write-ahead che significa che non è sicuro da crash e non è in grado di replicarsi.

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

Creare una tabella che faccia riferimento ad altre tabelle.

In questo esempio, User Table avrà una colonna che fa riferimento alla tabella dell'Agenzia.

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow