Header Ads

Guía Completa de ALTER TABLE en MySQL

📌 Guía Completa de ALTER TABLE en MySQL

En este post aprenderás todas las opciones principales de ALTER TABLE en MySQL, para modificar tus tablas existentes: agregar, eliminar o cambiar columnas, modificar tipos, gestionar claves foráneas, índices y más.


🔹 1️⃣ Agregar columnas


ALTER TABLE posts ADD categoria VARCHAR(100);
ALTER TABLE posts ADD publicado BOOLEAN DEFAULT FALSE AFTER contenido;

- AFTER columna → indica dónde colocar la nueva columna.
- FIRST → para ponerla al inicio de la tabla.

🔹 2️⃣ Modificar tipo de columna


ALTER TABLE posts MODIFY categoria TEXT;
ALTER TABLE posts MODIFY publicado TINYINT(1) NOT NULL DEFAULT 0;

Usa MODIFY para cambiar tipo y propiedades de la columna existente.

🔹 3️⃣ Cambiar nombre de columna


ALTER TABLE posts CHANGE categoria categoria_nombre VARCHAR(150);

Sintaxis: CHANGE columna_antigua columna_nueva tipo
Permite cambiar el nombre y el tipo al mismo tiempo.

🔹 4️⃣ Eliminar columnas


ALTER TABLE posts DROP COLUMN categoria;

🔹 5️⃣ Agregar o quitar restricciones

Agregar clave foránea:


ALTER TABLE posts
ADD CONSTRAINT fk_usuario
FOREIGN KEY (usuario_id) REFERENCES usuarios(id)
ON DELETE CASCADE;

Eliminar clave foránea:


ALTER TABLE posts DROP FOREIGN KEY fk_usuario;

🔹 6️⃣ Renombrar la tabla


ALTER TABLE posts RENAME TO articulos;

🔹 7️⃣ Cambiar motor o charset


ALTER TABLE posts ENGINE = InnoDB;
ALTER TABLE posts CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

🔹 8️⃣ Cambiar columna de posición


ALTER TABLE posts MODIFY creado_en TIMESTAMP DEFAULT CURRENT_TIMESTAMP FIRST;
ALTER TABLE posts MODIFY categoria VARCHAR(100) AFTER titulo;

🔹 9️⃣ Agregar índice


ALTER TABLE posts ADD INDEX idx_titulo (titulo);
ALTER TABLE posts ADD UNIQUE INDEX idx_usuario_titulo (usuario_id, titulo);

🔹 Resumen de las opciones más usadas

AcciónComando
Agregar columnaADD columna tipo
Modificar tipo/propiedadesMODIFY columna tipo
Renombrar columnaCHANGE columna_antigua columna_nueva tipo
Eliminar columnaDROP COLUMN columna
Agregar FKADD CONSTRAINT fk FOREIGN KEY ...
Eliminar FKDROP FOREIGN KEY fk
Cambiar tablaRENAME TO nueva_tabla
Cambiar motorENGINE = InnoDB
Cambiar charsetCONVERT TO CHARACTER SET utf8mb4
Agregar índiceADD INDEX/UNIQUE INDEX ...

No hay comentarios

Marcos Delgado. Con la tecnología de Blogger.