¿Cómo cambiar la definición de columna de MySQL?

156

Tengo una tabla mySQL llamada prueba:

create table test(
    locationExpect varchar(120) NOT NULL;
);

Quiero cambiar la columna locationExpect a:

create table test(
    locationExpect varchar(120);
);

¿Cómo se puede hacer rápidamente?

Máscara
fuente

Respuestas:

273

¿Te refieres a alterar la tabla después de que se ha creado? Si es así, debe usar alter table , en particular:

ALTER TABLE tablename MODIFY COLUMN new-column-definition

p.ej

ALTER TABLE test MODIFY COLUMN locationExpect VARCHAR(120);
mikej
fuente
55
Entonces ... MySQLWorkbench tiene un error de verificación de sintaxis que rechaza este comando. Pero, es el comando correcto.
Steven Lu
Cuidado: el ejemplo anterior también cambiará COLUMNA a Nulo = Sí, Predeterminado = Nulo. Debe especificar valores diferentes si no desea Null.
Guy Gordon el
@GuyGordon en la pregunta original, Mask quería cambiar una columna de NOT NULLpermitir nulos, así que creo que este ejemplo todavía está bien. Sin embargo, conviene en que sería necesaria una ligera variación si se quisiera un valor predeterminado diferente.
mikej
43

Sintaxis para cambiar el nombre de la columna en MySql :

alter table table_name change old_column_name new_column_name data_type(size);

Ejemplo:

alter table test change LowSal Low_Sal integer(4);
Niranjan Vaddi
fuente
11

Esto debería hacerlo:

ALTER TABLE test MODIFY locationExpert VARCHAR(120) 
Daniel Rikowski
fuente