mysql - separar - extraer numeros de una cadena de texto en sql
¿Cómo convertir una columna de tipo TEXTO a VARCHAR? (3)
Para MS SQL:
ALTER TABLE table_name
ALTER COLUMN column_name datatype(value)
Para MySQL
ALTER TABLE table_name
MODIFY column_name datatype(value)
¿Hay una manera de convertir una columna con datos como TEXT
a VARCHAR(X)
fácilmente? No hay registros existentes en la columna que sea más largo que X
Utilicé esto para el cambio masivo de mi DB. Ejecutarlo, luego copiar todas las filas, pegar en el campo de consulta, eliminar el encabezado y ejecutar.
Cambie ENGINE, CHARSET y COLLATION de todas las tablas en DB = itsd:
SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, ''.'', TABLE_NAME," ENGINE=INNODB,
CHARSET=utf8, COLLATE=utf8_general_ci;") AS ExecuteTheString
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="itsd"
AND TABLE_TYPE="BASE TABLE";
Convierta CHARSET y COLLATION de todas las tablas en DB = itsd:
SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, ''.'', TABLE_NAME," CONVERT TO
CHARACTER SET utf8;") AS ExecuteTheString
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="itsd"
AND TABLE_TYPE="BASE TABLE";
Cambie todos los campos de TEXTO a VARCHAR (255) de todas las tablas en DB = itsd:
SELECT CONCAT(''ALTER TABLE '', table_schema, ''.'', table_name, '' MODIFY COLUMN '',
column_name, '' VARCHAR(255);'')
FROM information_schema.columns
WHERE TABLE_SCHEMA = ''itsd''
AND DATA_TYPE = ''text''
AND TABLE_TYPE="BASE TABLE";
si por su puesto
ALTER TABLE table_name MODIFY column_name VARCHAR(X)