restricciones - tipos de indices en mysql
¿Cómo alterno el tipo de datos de columna de tabla en más de 1 columna? (2)
Por ejemplo:
ALTER TABLE webstore.Store MODIFY COLUMN (
ShortName VARCHAR(100),
UrlShort VARCHAR(100)
);
Lo anterior sin embargo no funciona. Estoy usando MySql 5.x
Use la siguiente sintaxis:
ALTER TABLE your_table
MODIFY COLUMN column1 datatype,
MODIFY COLUMN column2 datatype,
... ... ... ... ...
... ... ... ... ...
Basado en eso, su comando ALTER
debería ser:
ALTER TABLE webstore.Store
MODIFY COLUMN ShortName VARCHAR(100),
MODIFY COLUMN UrlShort VARCHAR(100)
Tenga en cuenta que:
- No hay segundos corchetes alrededor de las instrucciones
MODIFY
. -
MODIFY
dos instruccionesMODIFY
separadas para dos columnas separadas.
Este es el formato estándar de la instrucción MODIFY
para un comando ALTER
en múltiples columnas en una tabla MySQL.
Eche un vistazo a lo siguiente: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html y modifique varias columnas en una sola declaración
ALTER TABLE
puede hacer varias alteraciones de tabla en una instrucción, pero MODIFY COLUMN
solo puede funcionar en una columna a la vez, por lo que debe especificar MODIFY COLUMN
para cada columna que desee cambiar:
ALTER TABLE webstore.Store
MODIFY COLUMN ShortName VARCHAR(100),
MODIFY COLUMN UrlShort VARCHAR(100);
Además, tenga en cuenta esta advertencia del manual:
Cuando usa CAMBIAR o MODIFICAR, la
column_definition
debe incluir el tipo de datos y todos los atributos que se deben aplicar a la nueva columna, además de los atributos de índice como PRIMARY KEY o UNIQUE. Los atributos presentes en la definición original pero no especificados para la nueva definición no se transfieren.