postgresql
Creación de tablas
Buscar..
Creación de tablas con clave 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)
);
Alternativamente, puede colocar la restricción PRIMARY KEY
directamente en la definición de columna:
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)
);
Se recomienda utilizar nombres en minúsculas para la tabla y también para todas las columnas. Si usa nombres en mayúsculas, como Person
, tendría que ajustar ese nombre entre comillas dobles ( "Person"
) en todas y cada una de las consultas, porque PostgreSQL impone el plegado de casos.
Mostrar definición de tabla
Abra la herramienta de línea de comandos psql
conectada a la base de datos donde se encuentra su tabla. Luego escribe el siguiente comando:
\d tablename
Para obtener el tipo de información extendida
\d+ tablename
Si ha olvidado el nombre de la tabla, simplemente escriba \ d en psql para obtener una lista de tablas y vistas en la base de datos actual.
Crear tabla desde seleccionar
Digamos que tienes una mesa llamada 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)
);
Puedes crear una nueva tabla de personas mayores de 30 como esta:
CREATE TABLE people_over_30 AS SELECT * FROM person WHERE age > 30;
Crear tabla no registrada
Puede crear tablas no registradas para que pueda hacer las tablas considerablemente más rápido. La tabla no registrada salta la escritura write-ahead
registro de write-ahead
que significa que no es seguro y no se puede replicar.
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)
);
Cree una tabla que haga referencia a otra tabla.
En este ejemplo, la tabla de usuario tendrá una columna que hace referencia a la tabla de agencia.
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.
)