comando MySQL ALTER
Quando precisamos de modificar a tabela de dados ou modificar campo da tabela de dados, você precisará usar o comando MySQL ALTER.
Tutorial antes do início deste capítulo, vamos criar uma tabela, o nome da tabela: 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)
Excluir, adicionar ou modificar um campo de tabela
Utilize os seguintes comandos ALTER e cláusula DROP delete criado acima da tabela i campos:
mysql> ALTER TABLE testalter_tbl DROP i;
Se os dados na tabela único remanescente um campo você não pode usar DROP para excluir o campo.
MySQL usar a cláusula ADD para adicionar colunas quer folha de dados, como exemplos de campos na tabela adicionar i testalter_tbl e definir tipos de dados:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Depois de executar o comando acima, eles campos são automaticamente adicionados ao final do campo de tabela de dados.
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 você precisa especificar a localização do novo campo, (depois de definir localizado em um campo), você pode usar o MySQL fornecer palavra-chave FIRST (conjunto de bits na primeira coluna), após o nome do campo.
Tente o seguinte instrução ALTER TABLE, após a implementação bem-sucedida, o uso MOSTRAR COLUNAS visualizar a estrutura mudança tabela:
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;
FIRST e AFTER apenas palavras-chave para cláusula ADD, então se você deseja redefinir a posição do campo tabela de dados sobre a necessidade de usar GOTA excluir um campo e, em seguida, usar Adicionar para adicionar o campo e definir a posição.
Modificar o nome do campo e digite
Se você precisar modificar o tipo de campo e o nome, você pode usar CHANGE ou MODIFY cláusula do comando ALTER.
Por exemplo, o tipo de campo c de CHAR (1) para CHAR (10), você pode executar o seguinte comando:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Mudança no Uso da cláusula de gramática são muito diferentes. Após a palavra-chave CHANGE, seguido pelo nome do campo que deseja modificar e, em seguida, especifique um novo nome do campo e tipo. Tente os seguintes exemplos:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
Efeito do ALTER TABLE em valores nulos e padrão
Quando você modificar o campo, você pode especificar se deseja incluir ou se só definir o valor padrão.
O exemplo a seguir, o campo especificado j não é NULL eo valor padrão é 100.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Se você não definir um valor padrão, o MySQL irá definir automaticamente os padrões de campo para NULL.
Modifique os valores de campo padrão
Você pode usar o ALTER modificar o valor padrão do campo, tente 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)
Você também pode usar o comando padrão ALTER e DROP cláusulas para excluir o campo, como exemplos:
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 os tipos de tabelas de dados, pode ser realizada utilizando o comando ALTER e cláusula TYPE. Tente os seguintes exemplos, vamos modificar o tipo de MYISAM mesa testalter_tbl:
Nota: Consulte os tipos de tabelas de dados pode usar a instrução 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 o nome da tabela
Se você precisar modificar o nome da tabela de dados, você pode usar a cláusula RENAME na instrução ALTER TABLE para alcançar.
Tente os seguintes exemplos de tabelas de dados testalter_tbl renomear alter_tbl:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
comando ALTER também pode ser usado para criar e eliminar índices de tabelas de dados MySQL, esse recurso vamos introduzir no próximo capítulo.