Listado completo de tutoriales

49 - Agregar campos a una tabla (alter table - add)


Para modificar la estructura de una tabla existente, usamos "alter table".

"alter table" se usa para:

- agregar nuevos campos,

- eliminar campos existentes,

- modificar el tipo de dato de un campo,

- agregar o quitar modificadores como "null", "unsigned", "auto_increment",

- cambiar el nombre de un campo,

- agregar o eliminar la clave primaria,

- agregar y eliminar índices,

- renombrar una tabla.

"alter table" hace una copia temporal de la tabla original, realiza los cambios en la copia, luego borra la tabla original y renombra la copia.

Aprenderemos a agregar campos a una tabla.

Para ello utilizamos nuestra tabla "libros", definida con la siguiente estructura:

 - código, int unsigned auto_increment, clave primaria,
 - titulo, varchar(40) not null,
 - autor, varchar(30),
 - editorial, varchar (20),
 - precio, decimal(5,2) unsigned.

Necesitamos agregar el campo "cantidad", de tipo smallint unsigned not null, tipeamos:

 alter table libros
  add cantidad smallint unsigned not null;

Usamos "alter table" seguido del nombre de la tabla y "add" seguido del nombre del nuevo campo con su tipo y los modificadores.

Agreguemos otro campo a la tabla:

 alter table libros
  add edicion date;

Si intentamos agregar un campo con un nombre existente, aparece un mensaje de error indicando que el campo ya existe y la sentencia no se ejecuta.

Cuando se agrega un campo, si no especificamos, lo coloca al final, después de todos los campos existentes; podemos indicar su posición (luego de qué campo debe aparecer) con "after":

 alter table libros
 add cantidad tinyint unsigned after autor;

Servidor de MySQL instalado en forma local.

Ingresemos al programa "Workbench" y ejecutemos el siguiente bloque de instrucciones SQL:

drop table if exists libros;

create table libros(
  codigo int unsigned auto_increment,
  titulo varchar(40) not null,
  autor varchar(30),
  editorial varchar (20),
  precio decimal(5,2) unsigned,
  primary key(codigo)
 );

alter table libros
  add cantidad smallint unsigned not null;

describe libros;

alter table libros
  add edicion date;

describe libros;

alter table libros
  add precio int;

Genera una salida similar a esta:

MySQL alter table add

Retornar