¿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?

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);

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);

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.