Cambiar el nombre de una tabla dentro de un esquema en PostgreSQL
En PostgreSQL, a menudo tendemos a CREAR
tablas y usarlas para almacenar datos. Cuando CREEMOS
una tabla como la siguiente:
create table cat (
ID int,
NAME text
)
Ya asignamos un NOMBRE
a nuestra tabla cuando la creamos. En el ejemplo anterior, le dimos el nombre CAT
a nuestra tabla, y una vez que se solucione, probablemente tengamos que usar otros medios para RENOMBRAR
nuestra tabla una vez que se haya creado.
La sintaxis para CREAR
una tabla es la siguiente:
CREATE TABLE [Table_name] (
[variable_names] [variable_types]
)
¿Qué es un ESQUEMA
? Un ESQUEMA
contiene objetos de base de datos como tablas, vistas, índices y posiblemente todo lo que puede estar contenido dentro de su DBMS
.
Ahora sigamos adelante y aprendamos cómo podemos RENOMBRAR
nuestra tabla dentro de nuestro ESQUEMA
una vez que se haya creado.
la sintaxis básica de cambio de nombre en PostgreSQL
Para renombrar una tabla ya creada en PostgreSQL, podemos utilizar la sentencia ALTER
que tiende a realizar cambios o modificar algún objeto ya realizado dentro del esquema de PostgreSQL. Una instrucción ALTER
que tendería a RENOMBRAR
una tabla usa sintaxis.
ALTER TABLE [ IF EXISTS ] name
RENAME TO new_name
Tomemos el ejemplo de la tabla CAT
que usamos varias veces en nuestros tutoriales. Una operación SELECT
en nuestra base de datos devolvería algo como lo siguiente.
Select * from information_schema.tables
where table_name = 'cat'
Producción :
"postgres' "public" "cat" "BASE TABLE"
Y luego, podemos realizar la operación de RENOMBRAR
en esta tabla de la siguiente manera.
alter table CAT rename to KITTEN
Y ahora, cuando busquemos CAT
en nuestra base de datos, devolverá un resultado vacío. Sin embargo, buscar GATITO
funcionaría perfectamente con los mismos valores que tenía la tabla CAT
.
"postgres" "public" "kitten" "BASE TABLE"
Por lo tanto, nuestro RENOMBRAR
básico con la función ALTERAR
funciona perfectamente. Puede realizar esta misma consulta en PSQL
usando algo.
ALTER TABLE cat rename to Kitten;
Y devolverá la salida de la siguiente manera en caso de éxito.
Producción:
Errores al RENOMIZAR
tablas específicas de ESQUEMA
en PostgreSQL
El error de sintaxis es uno de los errores más comunes al realizar una operación RENAME
en una tabla hecha dentro de un SCHEMA
diferente al presente actualmente.
Por ejemplo, si tiendes a hacer un ESQUEMA
de la siguiente manera:
CREATE SCHEMA tester;
Y luego haz una mesa dentro.
CREATE TABLE tester.dog (
id INT,
name TEXT
)
La tabla ahora reside dentro del ESQUEMA
especificado. Sin embargo, llamar a la operación RENAME
de la siguiente manera devolverá un error.
ALTER TABLE tester.dog RENAME TO tester.doggy
Producción :
ERROR: syntax error at or near "."
LINE 1: ALTER TABLE tester.dog RENAME TO tester.doggy
¿Por qué? Si miras el texto RENOMBRAR
, dice algo como lo siguiente.
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
RENAME [ COLUMN ] column_name TO new_column_name
El nuevo_nombre_columna
tiene que ser una CADENA
válida. Por lo tanto, no puede usar otros caracteres como .
y ,
, que pueden invalidar una CADENA
.
Por lo tanto, si sigue adelante y hace algo de la siguiente manera.
alter table tester.dog rename to doggy;
Funcionará perfectamente bien. Así que ahora, si nos fijamos en la tabla DOMAIN.DOG
, habría sido RENOMBRADO
a DOMAIN.DOGGY
.
Otra forma de lograr esto es usar una solución alternativa que tiende a RENOMBRAR
la tabla en algo que vemos arriba. Debido a que actualmente estamos trabajando con un ESQUEMA
, podemos encontrar errores al usar el .
notación para especificar una tabla dentro de un ESQUEMA
.
Ahora seguiremos adelante y aprenderemos sobre RUTAS DE BÚSQUEDA
.
RUTAS DE BÚSQUEDA
para CAMBIO DE NOMBRE
TABLAS DE ESQUEMA
en PostgreSQL
Las ‘RUTAS DE BÚSQUEDA’ se definen globalmente como una tendencia a cambiar la referencia del ‘ESQUEMA’ al que se hace referencia actualmente a la definida en la sintaxis de ‘RUTA DE BÚSQUEDA’. Utiliza la sintaxis de la siguiente manera.
search_path (string)
Y se define en los VALORES PREDETERMINADOS DE LA CONEXIÓN DEL CLIENTE
. Ejecute la siguiente consulta para RENOMBRAR
la TABLA
.
SET search_path to tester;
alter table doggy rename to dogie
ESTABLECE
la ruta_búsqueda
en el esquema DOMINIO
, y luego, cuando llamamos a la tabla DOGI
, automáticamente sabe que se hace referencia a la tabla desde el esquema DOMINIO
.
Por lo tanto, esta consulta de una línea es mucho mejor para hacer referencia a las tablas dentro de un ESQUEMA
en lugar de llamar a un DOMINIO.NOMBRE_TABLA
.
SEARCH_PATH
también puede tener varios nombres de SCHEMA
separados por comas, y cuando llamamos a TABLE
u OBJECT
, se comprueba desde cada uno de estos SCHEMAS
definidos.
También puede agregar la cláusula SI EXISTE
para verificar si la TABLA
o el OBJETO
al que se hace referencia existe y luego continuar y ejecutarlo.
Esperamos que hayas aprendido a RENOMBRAR
tablas en PostgreSQL con diferentes opciones y escenarios. Tenga en cuenta que diferentes variaciones de la declaración RENAME
pueden funcionar en muchos casos.
Al trabajar en una base de datos, saber a qué SCHEMA
se hace referencia, a qué OBJECT
se llama y dónde se requiere para prevenir y evitar errores. Esperamos que nuestras soluciones puedan ayudarlo a comprender las diferentes formas en que una tabla puede ser CAMBIADA DE NOMBRE
.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub