Directorio de artigos
MySQL modificar engadir para aumentar varias posicións de campo? Explicación detallada do uso da instrución de columna modificar
MySQL Comando ALTER
Cando necesitemos modificar o nome da táboa de datos ou modificar os campos da táboa de datos, necesitamos usar o comando ALTER de MySQL.
Antes de comezar este tutorial, creemos unha táboa chamada: 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, engadir ou modificar campos da táboa
O seguinte comando usa o comando ALTER coa cláusula DROP para soltar a columna i da táboa creada anteriormente:
mysql> ALTER TABLE testalter_tbl DROP i;
DROP non se pode usar para eliminar un campo se só queda un campo na táboa de datos.
A cláusula ADD úsase en MySQL para engadir columnas á táboa de datos. O seguinte exemplo engade o campo i á táboa testalter_tbl e define o tipo de datos:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Despois de executar o comando anterior, o campo i engádese automaticamente ao final dos campos da táboa 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)
Se precisa especificar a localización do novo campo, pode usar a palabra clave FIRST proporcionada por MySQL (configuradaPosicionamentoprimeira columna), AFTER nome do campo (definido despois dun campo).
Probe a seguinte instrución ALTER TABLE e, despois da execución exitosa, use SHOW COLUMNS para ver os cambios na estrutura da táboa:
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;
As palabras clave FIRST e AFTER só se usan na cláusula ADD, polo que se queres restablecer a posición dun campo da táboa de datos, primeiro debes usar DROP para eliminar o campo e despois usar ADD para engadir o campo e establecer a posición.
Modificar o tipo e o nome do campo
Se precisa modificar o tipo e o nome do campo, pode utilizar a cláusula MODIFY ou CHANGE no comando ALTER.
Por exemplo, para cambiar o tipo de campo c de CHAR(1) a CHAR(10), execute o seguinte comando:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Coa cláusula CHANGE, a sintaxe é moi diferente.Inmediatamente despois da palabra clave CHANGE aparece o nome do campo que quere modificar e, a continuación, especifique o novo nome e tipo de campo.Proba o seguinte exemplo:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
Efecto de ALTER TABLE sobre valores nulos e predeterminados
Cando modifica un campo, pode especificar se quere incluír só ou se establecer un valor predeterminado.
O seguinte exemplo especifica que o campo j NON é NULL e que o valor predeterminado é 100.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Se non establece un valor predeterminado, MySQL establecerá automaticamente o campo como NULL por defecto.
Modificar o valor predeterminado do campo
Podes usar ALTER para cambiar o valor predeterminado dun campo, proba os seguintes exemplos:
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)
Tamén pode usar o comando ALTER coa cláusula DROP para eliminar o valor predeterminado dun campo, como no seguinte exemplo:
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:
A modificación do tipo de táboa de datos pódese facer mediante o comando ALTER e a cláusula TYPE.Proba o seguinte exemplo, onde cambiamos o tipo da táboa testalter_tbl a MYISAM:
Nota:Para ver o tipo de táboa de datos, pode usar a instrución SHOW TABLE STATUS.
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 o nome da táboa
Se precisa modificar o nome da táboa de datos, pode utilizar a cláusula RENAME na instrución ALTER TABLE para facelo.
Probe o seguinte exemplo para renomear a táboa de datos testalter_tbl a alter_tbl:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
O comando ALTER tamén se pode usar para crear e eliminar índices en táboas de datos MySQL, que presentaremos nos próximos capítulos.
alterar outros usos
Modificar o motor de almacenamento: modifícao a myisam
alter table tableName engine=myisam;
Eliminar a restrición de chave estranxeira: keyName é un alias de chave estranxeira
alter table tableName drop foreign key keyName;
A posición relativa do campo modificado: aquí nome1 é o campo a modificar, tipo1 é o tipo orixinal do campo, primeiro e despois pódense seleccionar, o que debería ser obvio, primeiro colócase primeiro e despois colócase despois do nome2. campo
alter table tableName modify name1 type1 first|after name2;
Blog de Hope Chen Weiliang ( https://www.chenweiliang.com/ ) compartiu "MySQL alterar engadir para aumentar varias posicións de campo? A explicación detallada do uso da declaración Modificar columna" é útil para vostede.
Benvido a compartir a ligazón deste artigo:https://www.chenweiliang.com/cwl-495.html
Benvido á canle de Telegram do blog de Chen Weiliang para recibir as últimas actualizacións.
📚 Esta guía contén un gran valor, 🌟Esta é unha oportunidade rara, non a perdas! ⏰⌛💨
Comparte e da like se che gusta!
O teu compartir e gústame son a nosa motivación continua!