Una entrada básica de SQL ¿Cuáles son las instrucciones básicas de gestión de tablas en el SGBD PostgreSQL? Veámoslas:
Crear tabla (para el ejemplo crearemos una tabla de de tres columnas, con un id autonumérico, una columna de texto que no admite nulos y una columna para números decimales con un valor por defecto de 0):
CREATE TABLE t (
id SERIAL PRIMARY KEY,
columna1 VARCHAR NOT NULL,
columna2 NUMERIC(10,2) DEFAULT 0
);
Para borrar una tabla tenemos dos opciones, la primera de ella será hacerlo con el parámetro RESTRICT o sin ningún parámetro, pues esta es la opción por defecto. Si hay objetos que dependan de esa tabla, como vistas o claves externas, no borrará la tabla y nos devolverá un mensaje de error informándonos:
DROP TABLE laTablaQueSea RESTRICT;
La otra opción es borrar en casacada, con el parámetro CASCADE. En este caso borra la tabla y todos los objetos que dependan de la misma.
DROP TABLE laTablaQueSea CASCADE
Si lo que queremos es añadir una columna entonces tenemos que usar ALTER TABLE seguida de la instrucción ADD COLUMN especificando el nombre de columna, el tipo de datos y las restricciones que se aplicarán sobre la misma.
ALTER TABLE laTablaQueSea
ADD COLUMN nombreDeColumna tipoDeDatos constraint;
Si queremos añadir varias columnas solo tenemos que repetir la instrucción ADD COLUMN separada por comas:
ALTER TABLE laTablaQueSea
ADD COLUMN nombreDeColumna tipoDeDatos constraint,
ADD COLUMN nombreDeColumna2 tipoDeDatos constraint,
ADD COLUMN nombreDeColumna3 tipoDeDatos constraint;
En cambio si queremos borrar una columna tenemos que usar DROP COLUMN seguido del nombre de la columna:
ALTER TABLE laTablaQueSea DROP COLUMN nombreDeColumna;
Para deshabilitar los triggers vinculados a una tabla tenemos que usar también ALTER TABLE:
ALTER TABLE laTablaQueSea DISABLE TRIGGER ALL;
Para volver a habilitar estos triggers sería lo mismo pero con el parámetro ENABLE:
ALTER TABLE laTablaQueSea ENABLE TRIGGER ALL;
Para añadir alguna restricción a la tabla también usamos ALTER TABLE, en ese caso seguido de ADD y de la restricción que sea.
ALTER TABLE laTablaQueSea ADD laRestriccionQueQuieras;
Para borrar una restricción sobre una tabla utilizamos ALTER TABLE, pero ahora con DROP:
ALTER TABLE laTablaQueSea DROP laRestriccionQueQuieras;
Para renombrar una tabla tenemos que usar RENAME después del ALTER TABLE:
ALTER TABLE laTablaQueSea RENAME TO otroNombreDeTabla;
Y para renombrar una columna es similar:
ALTER TABLE laTablaQueSea RENAME columna1 TO columna2 ;
Finalmente si queremos borrar todos los datos de una tabla sin borrar la tabla, nuestra opción es la instrucción TRUNCATE TABLE:
TRUNCATE TABLE laTablaQueSea CASCADE;