Solución:
tratar:
ALTER TABLE `user` CHANGE `id` `id` INT( 11 ) COMMENT 'id of user'
Puedes usar MODIFY COLUMN
para hacer esto. Solo haz…
ALTER TABLE YourTable
MODIFY COLUMN your_column
your_previous_column_definition COMMENT "Your new comment"
sustituyendo:
-
YourTable
con el nombre de tu mesa -
your_column
con el nombre de tu comentario -
your_previous_column_definition
con la columna column_definition, que recomiendo obtener a través deSHOW CREATE TABLE YourTable
comando y copia textualmente para evitar trampas. * -
Your new comment
con el comentario de la columna que desee.
Por ejemplo…
mysql> CREATE TABLE `Example` (
-> `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-> `some_col` varchar(255) DEFAULT NULL,
-> PRIMARY KEY (`id`)
-> );
Query OK, 0 rows affected (0.18 sec)
mysql> ALTER TABLE Example
-> MODIFY COLUMN `id`
-> int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Look, I''m a comment!';
Query OK, 0 rows affected (0.07 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> SHOW CREATE TABLE Example;
+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Example | CREATE TABLE `Example` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Look, I''m a comment!',
`some_col` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
* Siempre que uses MODIFY
o CHANGE
cláusulas en un ALTER TABLE
declaración, le sugiero que copie la definición de columna de la salida de un SHOW CREATE TABLE
declaración. Esto lo protege de perder accidentalmente una parte importante de la definición de su columna al no darse cuenta de que debe incluirla en su MODIFY
o CHANGE
cláusula. Por ejemplo, si tu MODIFY
un AUTO_INCREMENT
columna, debe especificar explícitamente el AUTO_INCREMENT
modificador de nuevo en el MODIFY
cláusula, o la columna dejará de ser una AUTO_INCREMENT
columna. Del mismo modo, si la columna se define como NOT NULL
o tiene un DEFAULT
valor, estos detalles deben incluirse al hacer un MODIFY
o CHANGE
en la columna o se perderán.
Script para todos los campos de la base de datos:
SELECT
table_name,
column_name,
CONCAT('ALTER TABLE `',
TABLE_SCHEMA,
'`.`',
table_name,
'` CHANGE `',
column_name,
'` `',
column_name,
'` ',
column_type,
' ',
IF(is_nullable="YES", '' , 'NOT NULL '),
IF(column_default IS NOT NULL, concat('DEFAULT ', IF(column_default IN ('CURRENT_TIMESTAMP', 'CURRENT_TIMESTAMP()', 'NULL', 'b'0'', 'b'1''), column_default, CONCAT(''',column_default,''') ), ' '), ''),
IF(column_default IS NULL AND is_nullable="YES" AND column_key = '' AND column_type="timestamp",'NULL ', ''),
IF(column_default IS NULL AND is_nullable="YES" AND column_key = '','DEFAULT NULL ', ''),
extra,
' COMMENT '',
column_comment,
'' ;') as script
FROM
information_schema.columns
WHERE
table_schema="my_database_name"
ORDER BY table_name , column_name
- Exportar todo a un CSV
- Ábrelo en tu editor csv favorito
Nota: puede mejorar a una sola mesa si lo prefiere
La solución dada por @Rufinus es excelente, pero si tiene incrementos automáticos, la romperá.