Directorio de artículos
¿Cómo agregar varios campos usando la instrucción `ALTER ALTER ADD` de MySQL ? Explicación detallada de la instrucción `MODIUS CLOSED`.
MySQL comando ALTERAR
Cuando necesitamos modificar el nombre de la tabla de datos o modificar los campos de la tabla de datos, necesitamos usar el comando MySQL ALTER.
Antes de comenzar este tutorial, creemos una tabla llamada: testalter_tbl.
root@host# mysql -u root -p password; Enter password:******* mysql> use chenweiliang; Database changed mysql> create table testalter_tbl -> ( -> i INT, -> c CHAR(1) -> ); Query OK, 0 rows affected (0.05 sec) mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | i | int(11) | YES | | NULL | | | c | char(1) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Eliminar, agregar o modificar campos de la tabla
El siguiente comando usa el comando ALTER con la cláusula DROP para eliminar la columna i de la tabla creada anteriormente:
mysql> ALTER TABLE testalter_tbl DROP i;
DROP no se puede usar para eliminar un campo si solo queda un campo en la tabla de datos.
La cláusula ADD se usa en MySQL para agregar columnas a la tabla de datos.El siguiente ejemplo agrega el campo i a la tabla testalter_tbl y define el tipo de datos:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Después de ejecutar el comando anterior, el campo i se agrega automáticamente al final de los campos de la tabla de datos.
mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Si necesita especificar la posición del nuevo campo, puede utilizar las palabras clave FIRST (establecer en la primera columna) y AFTER field_name (establecer para que esté después de un campo determinado) proporcionadas por MySQL .
Pruebe la siguiente declaración ALTER TABLE y, después de una ejecución exitosa, use SHOW COLUMNS para ver los cambios en la estructura de la tabla:
ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT FIRST; ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT AFTER c;
Las palabras clave FIRST y AFTER solo se usan en la cláusula ADD, por lo que si desea restablecer la posición de un campo de la tabla de datos, debe usar DROP para eliminar el campo y luego ADD para agregar el campo y establecer la posición.
Modificar tipo de campo y nombre
Si necesita modificar el tipo y el nombre del campo, puede usar la cláusula MODIFY o CHANGE en el comando ALTER.
Por ejemplo, para cambiar el tipo de campo c de CHAR(1) a CHAR(10), ejecute el siguiente comando:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Con la cláusula CHANGE, la sintaxis es muy diferente.Inmediatamente después de la palabra clave CHANGE se encuentra el nombre del campo que desea modificar y luego especifique el nuevo nombre y tipo de campo.Pruebe el siguiente ejemplo:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
Efecto de ALTER TABLE en valores nulos y predeterminados
Cuando modifica un campo, puede especificar si incluir solo o establecer un valor predeterminado.
El siguiente ejemplo especifica que el campo j NO ES NULO y el valor predeterminado es 100.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Si no establece un valor predeterminado, MySQL establecerá automáticamente el campo en NULL de forma predeterminada.
Modificar el valor predeterminado del campo
Puede usar ALTER para cambiar el valor predeterminado de un campo, pruebe los siguientes ejemplos:
mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | 1000 | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
También puede usar el comando ALTER con la cláusula DROP para eliminar el valor predeterminado de un campo, como en el siguiente ejemplo:
mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec) Changing a Table Type:
La modificación del tipo de tabla de datos se puede realizar mediante el comando ALTER y la cláusula TYPE.Pruebe el siguiente ejemplo, donde cambiamos el tipo de la tabla testalter_tbl a MYISAM:
Nota: Puede utilizar la instrucción SHOW TABLE STATUS para comprobar el tipo de tabla.
mysql> ALTER TABLE testalter_tbl ENGINE = MYISAM; mysql> SHOW TABLE STATUS LIKE 'testalter_tbl'\G *************************** 1. row **************** Name: testalter_tbl Type: MyISAM Row_format: Fixed Rows: 0 Avg_row_length: 0 Data_length: 0 Max_data_length: 25769803775 Index_length: 1024 Data_free: 0 Auto_increment: NULL Create_time: 2007-06-03 08:04:36 Update_time: 2007-06-03 08:04:36 Check_time: NULL Create_options: Comment: 1 row in set (0.00 sec)
Modificar el nombre de la tabla
Si necesita modificar el nombre de la tabla de datos, puede usar la cláusula RENAME en la instrucción ALTER TABLE para hacerlo.
Pruebe el siguiente ejemplo para cambiar el nombre de la tabla de datos testalter_tbl a alter_tbl:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
El comando ALTER también se puede usar para crear y eliminar índices en tablas de datos de MySQL, que presentaremos en los próximos capítulos.
alterar otros usos
Modificar el motor de almacenamiento: modificarlo a myisam
alter table tableName engine=myisam;
Eliminar restricción de clave externa: keyName es un alias de clave externa
alter table tableName drop foreign key keyName;
La posición relativa del campo modificado: aquí nombre1 es el campo que desea modificar, tipo1 es el tipo original del campo, y puede elegir primero y después, lo que debería ser obvio, primero se coloca primero y después es colocado después del campo name2
alter table tableName modify name1 type1 first|after name2;
Esperamos que el artículo "Agregar múltiples campos a MySQL con ALTER TABLE? Explicación detallada de la instrucción 'MODIATE COLLECT'" compartido en el blog de Chen Weiliang ( https://www.chenweiliang.com/ ) le sea útil.
No dudes en compartir el enlace de este artículo: https://www.chenweiliang.com/cwl-495.html
