Saltar al contenido

MySQL: ¿Cómo crear una columna si no existe?

Selena, parte de este gran equipo, nos hizo el favor de crear esta crónica porque domina a la perfección dicho tema.

Solución:

Actualmente existe ahora para Maria DB 10.219

ALTER TABLE test ADD COLUMN IF NOT EXISTS column_a VARCHAR(255);

Bonificación, también funciona para MODIFICAR

ALTER TABLE test MODIFY IF EXISTS column_a VARCHAR(255);

mysql ALTER TABLE no tiene IF EXISTS especificación.

Puede hacer lo siguiente mediante el uso de un proceso almacenado o un lenguaje de programación si esto es algo que deberá hacer con regularidad:

Pseudocódigo:

  • Encuentre si la columna existe usando el siguiente SQL:

    SELECCIONE column_name
    DE INFORMATION_SCHEMA.COLUMNS
    DÓNDE TABLE_SCHEMA=[Database Name]
    Y TABLE_NAME=[Table Name];

  • Si la consulta anterior devuelve un resultado, significa que la columna existe; de ​​lo contrario, puede continuar y crear la columna.

Puede usar esta solución, ya mencionada en otra publicación de StackOverFlow: (Ref.: https://stackoverflow.com/a/31989541/)

MySQL – ALTER TABLE para agregar una columna si no existe:

SET @dbname = DATABASE();
SET @tablename = "tableName";
SET @columnname = "colName";
SET @preparedStatement = (SELECT IF(
  (
    SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
    WHERE
      (table_name = @tablename)
      AND (table_schema = @dbname)
      AND (column_name = @columnname)
  ) > 0,
  "SELECT 1",
  CONCAT("ALTER TABLE ", @tablename, " ADD ", @columnname, " INT(11);")
));
PREPARE alterIfNotExists FROM @preparedStatement;
EXECUTE alterIfNotExists;
DEALLOCATE PREPARE alterIfNotExists;

Recuerda difundir esta reseña si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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