ALTER comandos de MySQL
Cuando tenemos que modificar la tabla de datos o modificar los datos de campo de tabla, es necesario utilizar el comando ALTER MySQL.
Tutorial antes del comienzo de este capítulo vamos a crear una tabla, el nombre de la tabla: testalter_tbl.
root@host# mysql -u root -p password; Enter password:******* mysql> use w3big; 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)
Borrar, añadir o modificar un campo de tabla
Utilice los siguientes comandos ALTER y DROP eliminar la cláusula de comando creado anteriormente i campos de la tabla:
mysql> ALTER TABLE testalter_tbl DROP i;
Si los datos de la tabla que queda un campo que no se puede usar DROP para eliminar el campo.
MySQL utilizar la cláusula ADD para agregar columnas quieren hoja de datos, como ejemplos de campos de la tabla añaden i testalter_tbl y definir los tipos de datos:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Después de ejecutar el comando anterior, estén campos se añaden automáticamente al final del campo 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 es necesario especificar la ubicación del nuevo campo, (después de ajuste situado en un campo) se puede usar MySQL proporcionar los primeros (bit activado en la primera columna) de palabras clave, después del nombre de campo.
Pruebe lo siguiente sentencia ALTER TABLE, después de la aplicación con éxito, el uso VER columnas de la vista de la estructura de la tabla de cambios:
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;
PRIMERO y DESPUÉS palabras clave única para la cláusula ADD, por lo que si desea restablecer la posición de campo de tabla de datos en la necesidad de usar DROP borrar un campo y luego usar ADD para agregar el campo y establecer la posición.
Modificar el nombre del campo y escriba
Si necesita modificar el tipo de campo y el nombre, puede utilizar cambiar o modificar la cláusula del comando ALTER.
Por ejemplo, el campo de tipo c de CHAR (1) a CHAR (10), puede ejecutar el siguiente comando:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Cambio del uso de la cláusula de gramática son muy diferentes. Después de la palabra clave CAMBIO, seguido del nombre del campo que desea modificar y, a continuación, especifique un nuevo nombre de campo y tipo. Prueba los siguientes ejemplos:
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 valores por defecto
Cuando modifica el campo, puede especificar si se debe incluir o si sólo se establece el valor predeterminado.
En el siguiente ejemplo, el campo especificado j no es NULL y el valor por defecto es 100.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Si no se establece un valor por defecto, MySQL ajustará automáticamente los valores predeterminados de campo a NULL.
Modificar los valores predeterminados de campo
Se puede utilizar el ALTER modificar el valor por defecto del 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 utilizar los modificar y eliminar las cláusulas de comando por defecto para eliminar el campo, como ejemplos:
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:
Modificar los tipos de tablas de datos, se puede lograr mediante el comando ALTER y la cláusula TYPE. Prueba los siguientes ejemplos, vamos a modificar el tipo de tabla MYISAM testalter_tbl:
Nota: Ver los tipos de tablas de datos pueden utilizar el comando SHOW TABLE STATUS.
mysql> ALTER TABLE testalter_tbl TYPE = 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 utilizar la cláusula RENAME en sentencia ALTER TABLE para lograr.
Prueba los siguientes ejemplos de tablas de datos testalter_tbl renombrar alter_tbl:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
comando ALTER también se puede utilizar para crear y borrar índices, tablas de datos MySQL, esta característica vamos a introducir en el siguiente capítulo.