PostgreSQL ALTER TABLE: Agregar y renombrar columna

โšก Resumen inteligente

PostgreSQL ALTER TABLE modifica la estructura de una tabla existente, permitiรฉndole agregar o eliminar columnas, cambiar el nombre de una columna o de toda la tabla, establecer valores predeterminados y adjuntar restricciones de verificaciรณn sin necesidad de recrear el objeto.

  • ๐Ÿงฑ Sintaxis: La acciรณn ALTER TABLE nombre-tabla realiza un cambio estructural por instrucciรณn.
  • โž• Agregar columna: ADD column-name data-type agrega una nueva columna a la tabla.
  • โœ๏ธ Rebautizar: Las opciones CAMBIAR NOMBRE DE COLUMNA y CAMBIAR NOMBRE A cambian el nombre de una columna o el nombre de la tabla.
  • โš™๏ธ Valor por defecto: ALTER COLUMN SET DEFAULT proporciona un valor para las futuras filas INSERT.
  • ๐Ÿ›ก๏ธ Verificar restricciรณn: La funciรณn ADD CHECK valida los datos nuevos y rechaza los valores que no cumplen la regla.
  • ๐Ÿค– Migraciones de IA: Los asistentes de IA elaboran scripts ALTER TABLE y los revisan para garantizar una implementaciรณn segura.

PostgreSQL ALTERAR MESA

ยฟQuรฉ es ALTER TABLE en PostgreSQL?

El ALTERAR MESA El comando se utiliza para alterar la estructura de un PostgreSQL tabla. Es el comando que se usa para cambiar las columnas de la tabla o el nombre de la tabla misma, sin eliminarla.ping y recreando el objeto.

Sintaxis

Aquรญ estรก la sintaxis para el PostgreSQL Comando ALTERAR TABLA:

ALTER TABLE table-name action;

El parรกmetro table-name indica el nombre de la tabla que desea modificar. El parรกmetro action indica la acciรณn que debe realizar, como cambiar el nombre de una columna o el tipo de datos de una columna.

Mareas Ideales para Lecciones

El comando ALTER TABLE cambia la definiciรณn de una tabla existente. Adopta las siguientes subformas:

  • Aร‘ADIR COLUMNA: esto utiliza una sintaxis similar a la del comando CREATE TABLE para agregar una nueva columna a una tabla.
  • SOLTAR COLUMNA: para caรญdaping una columna de tabla. Las restricciones e รญndices impuestos a las columnas tambiรฉn se eliminarรกn.
  • CONFIGURAR/SOLIR POR DEFECTO: se utiliza para establecer o eliminar el valor predeterminado de una columna. El cambio solo se aplica a los siguientes. INSERTAR declaraciones.
  • SET/DROP NO NULO: cambia si una columna permitirรก valores nulos o no.
  • ESTADรSTICAS DEL CONJUNTO: para establecer el objetivo de recopilaciรณn de estadรญsticas para cada columna para las operaciones ANALYZE.
  • ESTABLECER ALMACENAMIENTO: para configurar el modo de almacenamiento de una columna, ya sea en lรญnea o en una tabla suplementaria.
  • CONJUNTO SIN OIDS: se utiliza para eliminar la antigua columna OID de la tabla.
  • REBAUTIZAR: para cambiar el nombre de la tabla o el nombre de una columna.
  • AGREGAR restricciรณn_tabla: se utiliza para agregar una nueva restricciรณn a una tabla. Utiliza la misma sintaxis que la Crear mesa mando.
  • RESTRICCIร“N DE GOTAS: se utiliza para dejar caerping una restricciรณn de tabla.
  • PROPIETARIO: para cambiar el propietario de una tabla, secuencia, รญndice o vista a un usuario determinado.
  • GRUPO: para marcar una tabla que se utilizarรก en futuras operaciones de clรบster.

Modificar una columna

Una columna puede modificarse de varias maneras. Dichas modificaciones se realizan mediante el comando ALTER TABLE. A continuaciรณn, las analizaremos.

Agregar una nueva columna

Para agregar una nueva columna a un PostgreSQL tabla, el comando ALTER TABLE se utiliza con la siguiente sintaxis:

ALTER TABLE table-name
  ADD new-column-name column-definition;

El nombre de la tabla es el nombre de la tabla que se va a modificar. El nombre de la nueva columna es el nombre de la nueva columna que se va a aรฑadir. La definiciรณn de la columna es el nombre de la nueva columna que se va a aรฑadir. tipo de datos de la nueva columna. Consulte la tabla del libro que se muestra a continuaciรณn:

PostgreSQL Ejemplo de ALTER TABLE

La tabla tiene dos columnas: id y nombre. Necesitamos agregar una nueva columna a la tabla y llamarla autor. Simplemente ejecute el siguiente comando:

ALTER TABLE Book
  ADD author VARCHAR(50);

Despuรฉs de ejecutar el comando anterior, la tabla Libro ahora es la siguiente:

PostgreSQL Ejemplo de ALTER TABLE

La nueva columna se agregรณ correctamente.

Cambiar el nombre de una columna de tabla

Podemos utilizar el comando ALTER TABLE para cambiar el nombre de una columna. En este caso, el comando se utiliza con la siguiente sintaxis:

ALTER TABLE table-name
  RENAME COLUMN old-name TO new-name;

El nombre de la tabla es el nombre de la tabla cuya columna se va a renombrar. El nombre anterior es el nombre actual de la columna, y el nombre nuevo es el nuevo nombre de la columna. Considere la tabla Libro que se muestra a continuaciรณn:

Libro:

PostgreSQL Ejemplo de ALTER TABLE

Necesitamos cambiar el nombre de la columna "autor" a "autor_libro". Aquรญ estรก el comando:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Despuรฉs de ejecutar el comando, podemos ver la estructura de la tabla:

PostgreSQL Ejemplo de ALTER TABLE

El nombre de la columna se cambiรณ correctamente.

Establecer un valor predeterminado para una columna

Podemos establecer un valor predeterminado para una columna, de modo que incluso cuando no se especifique un valor para esa columna durante las operaciones INSERT, se utilizarรก el valor predeterminado. En este caso, el comando ALTER TABLE se puede utilizar con la siguiente sintaxis:

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

El nombre de la tabla es el nombre de la tabla cuya columna se va a modificar. El nombre de la columna es el nombre de la columna cuyo valor predeterminado se va a establecer, y el valor es el valor predeterminado para la columna. Considere la tabla Libro que se muestra a continuaciรณn:

PostgreSQL Ejemplo de ALTER TABLE

Necesitamos establecer un valor predeterminado para la columna book_author. Podemos ejecutar el siguiente comando:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Ahora, insertemos una fila en la tabla:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners');

Tenga en cuenta que solo insertamos valores para dos columnas: id y nombre. Sin embargo, se ha utilizado el valor predeterminado para la columna book_author:

PostgreSQL Ejemplo de ALTER TABLE

Agregar una restricciรณn de verificaciรณn

Una restricciรณn de verificaciรณn ayuda a validar los registros que se insertan en una tabla. Podemos hacer esto combinando el comando ALTER TABLE con la instrucciรณn ADD CHECK. Sintaxis:

ALTER TABLE table-name ADD CHECK expression;

El nombre de la tabla es el nombre de la tabla que se va a modificar, y la expresiรณn es la restricciรณn que se va a imponer a la columna de la tabla. Modifiquemos la columna book_author de la tabla Book para que solo acepte los valores Nicholas y Samuel:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

Ahora, intentemos insertar un valor que no sea Nicholas o Samuel en la columna book_author de la tabla Libro:

INSERT INTO Book
VALUES(7, 'Mejores PostgreSQL Book', 'Gregory Bush');

La declaraciรณn devolverรก el siguiente error:

PostgreSQL Ejemplo de ALTER TABLE

La operaciรณn de inserciรณn fallรณ porque violamos la restricciรณn de verificaciรณn.

Cambiar el nombre de una tabla

Aquรญ estรก la sintaxis del comando ALTER TABLE para cambiar el nombre de una tabla:

ALTER TABLE table-name
  RENAME TO new-table-name;

El nombre de la tabla es el nombre actual de la tabla, y el nuevo nombre de la tabla es el nuevo nombre que se le asignarรก. Por ejemplo, cambiemos el nombre de la tabla Libro a Libros:

ALTER TABLE Book
  RENAME TO Books;

Usando pgAdmin

Hasta ahora, las acciones se han ejecutado desde la consola SQL. Veamos ahora cรณmo se pueden realizar estas mismas acciones visualmente usando pgAdmin.

Agregar una nueva columna

Paso 1) Inicie sesiรณn en su cuenta pgAdmin.

Paso 2)

  1. En la barra de navegaciรณn de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostraciรณn.

PostgreSQL Ejemplo de ALTER TABLE

Paso 3) Escriba la consulta en el editor de consultas:

ALTER TABLE Book
  ADD author VARCHAR(50);

Paso 4) Haga clic en el botรณn Ejecutar.

PostgreSQL Ejemplo de ALTER TABLE

Paso 5) Para comprobar si se agregรณ la columna, haga lo siguiente:

  1. Haga clic en Bases de datos en la navegaciรณn izquierda.
  2. Expanda Demostraciรณn.
  3. Expanda Esquemas.
  4. Expandir Pรบblico.
  5. Expanda Tablas.
  6. Ampliar libro.
  7. Expanda columnas.

PostgreSQL Ejemplo de ALTER TABLE

La columna deberรญa haberse agregado, como se muestra a continuaciรณn:

PostgreSQL Ejemplo de ALTER TABLE

Cambiar el nombre de una columna de tabla

Paso 1) Inicie sesiรณn en su cuenta pgAdmin.

Paso 2)

  1. En la barra de navegaciรณn de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostraciรณn.

PostgreSQL Ejemplo de ALTER TABLE

Paso 3) Escriba la consulta en el editor de consultas:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Paso 4) Haga clic en el botรณn Ejecutar.

PostgreSQL Ejemplo de ALTER TABLE

Paso 5) Para comprobar si el cambio se realizรณ correctamente, expanda las columnas de la tabla de libros como antes:

PostgreSQL Ejemplo de ALTER TABLE

Las columnas ahora deberรญan ser las siguientes:

PostgreSQL Ejemplo de ALTER TABLE

La columna se cambiรณ correctamente.

Establecer un valor predeterminado para una columna

Paso 1) Inicie sesiรณn en su cuenta pgAdmin.

Paso 2)

  1. En la barra de navegaciรณn de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostraciรณn.

PostgreSQL Ejemplo de ALTER TABLE

Paso 3) Escriba la consulta en el editor de consultas:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Paso 4) Haga clic en el botรณn Ejecutar.

PostgreSQL Ejemplo de ALTER TABLE

Paso 5) Para realizar la prueba, ejecute el siguiente comando en el editor de consultas:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners')

Paso 6) Ahora, podemos consultar la tabla para verificar si el valor predeterminado se insertรณ en la columna book_author:

PostgreSQL Ejemplo de ALTER TABLE

Agregar una restricciรณn de verificaciรณn

Paso 1) Inicie sesiรณn en su cuenta pgAdmin.

Paso 2)

  1. En la barra de navegaciรณn de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostraciรณn.

PostgreSQL Ejemplo de ALTER TABLE

Paso 3) Escriba la consulta en el editor de consultas:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

Paso 4) Haga clic en el botรณn Ejecutar.

PostgreSQL Ejemplo de ALTER TABLE

Paso 5) Para probar esto, escriba la siguiente consulta en el editor de consultas y haga clic en el botรณn Ejecutar:

INSERT INTO Book
VALUES(7, 'Mejores PostgreSQL Book', 'Gregory Bush');

PostgreSQL Ejemplo de ALTER TABLE

Devolverรก lo siguiente:

PostgreSQL Ejemplo de ALTER TABLE

Cambiar el nombre de una tabla

Paso 1) Inicie sesiรณn en su cuenta pgAdmin.

Paso 2)

  1. En la barra de navegaciรณn de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostraciรณn.

PostgreSQL Ejemplo de ALTER TABLE

Paso 3) Escriba la consulta en el editor de consultas:

ALTER TABLE Book
  RENAME TO Books;

Paso 4) Haga clic en el botรณn Ejecutar.

PostgreSQL Ejemplo de ALTER TABLE

Paso 5) Para comprobar si se cambiรณ el nombre de la tabla, expanda Bases de datos > Demo > Esquemas > Pรบblico > Tablas:

PostgreSQL Ejemplo de ALTER TABLE

Se cambiรณ el nombre de la tabla con รฉxito.

Descargue la Base de Datos utilizada en este Tutorial

Preguntas Frecuentes

Utilice ALTER TABLE table_name ALTER COLUMN column_name TYPE new_type. Aรฑada una clรกusula USING cuando los valores necesiten conversiรณn, por ejemplo ALTER COLUMN price TYPE numeric USING price::numeric. PostgreSQL Reescribe la columna y comprueba que los datos existentes se ajusten al nuevo tipo.

Solo si el valor predeterminado es volรกtil. Dado que PostgreSQL 11. La opciรณn AGREGAR COLUMNA con un valor predeterminado constante actualiza el catรกlogo instantรกneamente sin sobrescribir filas. Un valor predeterminado que llama a una funciรณn aรบn fuerza la reescritura completa de la tabla y un bloqueo mรกs estricto.

No. PostgreSQL No se puede modificar una restricciรณn ya existente. Elimine la restricciรณn actual con DROP CONSTRAINT y, a continuaciรณn, aรฑada la corregida con ADD CONSTRAINT. Incluya ambas instrucciones en una transacciรณn para que la tabla siempre quede sin la regla.

Enumera varias acciones separadas por comas: ALTER TABLE Book ADD COLUMN price int, ADD COLUMN isbn text. PostgreSQL Aplica todos los cambios en una sola pasada, lo que resulta mรกs rรกpido y mantiene la tabla coherente.

Utilice ALTER TABLE table_name ADD PRIMARY KEY (columna) o ADD CONSTRAINT pk_name PRIMARY KEY (columna). La columna debe contener valores รบnicos y no nulos; PostgreSQL Crea automรกticamente un รญndice รบnico de soporte cuando se crea la clave.

El comando RENAME solo actualiza el nombre de la tabla en el catรกlogo del sistema. Las filas, los รญndices y las restricciones almacenadas permanecen intactos. Es posible que las vistas o funciones que hagan referencia al nombre anterior aรบn necesiten actualizarse posteriormente.

Los asistentes de IA elaboran scripts ALTER TABLE a partir de un cambio descrito, ordenan correctamente los pasos ADD, RENAME y constraint, y aรฑaden clรกusulas USING para conversiones de tipo. Ademรกs, identifican las operaciones que reescriben tablas grandes o que mantienen bloqueos importantes.

Sรญ. Un copiloto de IA revisa una migraciรณn, advierte sobre bloqueos o reescrituras completas de tablas, sugiere la creaciรณn de รญndices por lotes o concurrentes y recomienda encapsularping cambios en una transacciรณn, lo que hace que las actualizaciones del esquema sean mรกs seguras para implementar.

Resumir este post con: