Solo para hacer esto explícito, las respuestas a continuación (usando ALTER TABLE) funcionarán, de hecho, incluso si la columna ya contiene datos. Sin embargo, la conversión de una columna flotante en una columna entera hará que los valores no enteros se redondeen al entero más cercano.
Recordatorio amigable: el valor predeterminado para las columnas es NULLABLE, por lo que si tiene una columna NOT NULL, no olvide usar "MODIFY columnname INTEGER NOT NULL" o de lo contrario cambiará su columna de NOT NULL a NULL.
Despertar
3
¿Alterar la tabla eliminará los datos de la tabla o fallará en la ejecución si algo no está relacionado con el nuevo tipo de columna?
EndermanAPM
1
ALTER TABLE tablename MODIFY columnname INTEGER unsigned; <- si le preocupa que la nueva columna no esté firmada. Fue mi caso.
mircealungu
Creo que la advertencia de @Despertars también podría ser relevante para mantener las especificaciones de CHARSET o COLLATE.
!! No mantiene restricciones únicas, pero debe arreglarse fácilmente con otro ifparámetro para concat. Dejaré que el lector implemente eso si es necesario.
ALTER TABLE
) funcionarán, de hecho, incluso si la columna ya contiene datos. Sin embargo, la conversión de una columna flotante en una columna entera hará que los valores no enteros se redondeen al entero más cercano.Respuestas:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
Esto cambiará el tipo de datos de la columna dada
Dependiendo de cuántas columnas desee modificar, sería mejor generar un script o utilizar algún tipo de GUI de cliente mysql
fuente
fuente
También puedes usar esto:
fuente
Si desea cambiar todas las columnas de un determinado tipo a otro tipo, puede generar consultas utilizando una consulta como esta:
Por ejemplo, si desea cambiar las columnas de
tinyint(4)
abit(1)
, ejecútelo así:y obtener una salida como esta:
!! No mantiene restricciones únicas, pero debe arreglarse fácilmente con otro
if
parámetro paraconcat
. Dejaré que el lector implemente eso si es necesario.fuente
Ej:
fuente
Utiliza el
alter table ... change ...
método, por ejemplo:fuente
fuente
https://dev.mysql.com/doc/refman/8.0/en/alter-table.html
También puede establecer un valor predeterminado para la columna, solo agregue la palabra clave DEFAULT seguida del valor.
Esto también funciona para MariaDB (versión probada 10.2)
fuente
Si desea modificar los detalles de la columna, agregue un comentario, use esto
fuente