PostgreSQL – Cambiar tipo de columna

En este artículo, analizaremos el proceso paso a paso para cambiar el tipo de datos de una columna mediante la declaración ALTER TABLE en PostgreSQL .

Syntax:
ALTER TABLE table_name
ALTER COLUMN column_name [SET DATA] TYPE new_data_type;

Analicemos la sintaxis anterior:

  • Primero, especifique el nombre de la tabla a la que pertenece la columna que desea cambiar en la cláusula ALTER TABLE.
  • En segundo lugar, proporcione el nombre de la columna cuyo tipo de datos se cambiará en la cláusula ALTER COLUMN.
  • Tercero, proporcione el nuevo tipo de datos para la columna después de la palabra clave TYPE. Es posible usar SET DATA TYPE o TYPE.

Ejemplo:
Vamos a crear una tabla (digamos, activos) e insertar algunas filas en ella para la demostración usando la siguiente declaración:

CREATE TABLE assets (
    id serial PRIMARY KEY,
    name TEXT NOT NULL,
    asset_no VARCHAR NOT NULL,
    description TEXT,
    LOCATION TEXT,
    acquired_date DATE NOT NULL
);

INSERT INTO assets (
    NAME,
    asset_no,
    location,
    acquired_date
)
VALUES
    (
        'Server',
        '10001',
        'Server room',
        '2020-01-01'
    ),
    (
        'UPS',
        '10002',
        'Server room',
        '2020-05-16'
);

Ahora cambiaremos el tipo de datos de la name columna a VARCHAR , usando la siguiente declaración:

ALTER TABLE assets ALTER COLUMN name TYPE VARCHAR;

Ahora cambiamos el tipo de datos de las columnas de descripción y ubicación de TEXTO a VARCHAR usando la siguiente declaración:

ALTER TABLE assets 
    ALTER COLUMN location TYPE VARCHAR,
    ALTER COLUMN description TYPE VARCHAR;

Ahora revisamos la tabla para ver los cambios realizados usando la siguiente declaración:

SELECT * FROM assets;

Producción:

Publicación traducida automáticamente

Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *