Directori d'articles
Com afegir diversos camps utilitzant l'ordre `ALTER ALTER ADD` de MySQL ? Explicació detallada de l'ordre `MODIUS Column`.
MySQL Ordre ALTER
Quan necessitem modificar el nom de la taula de dades o modificar els camps de la taula de dades, hem d'utilitzar l'ordre MySQL ALTER.
Abans de començar aquest tutorial, creem una taula anomenada: 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)
Suprimir, afegir o modificar camps de taula
L'ordre següent utilitza l'ordre ALTER amb la clàusula DROP per deixar anar la columna i de la taula creada anteriorment:
mysql> ALTER TABLE testalter_tbl DROP i;
DROP no es pot utilitzar per suprimir un camp si només queda un camp a la taula de dades.
La clàusula ADD s'utilitza a MySQL per afegir columnes a la taula de dades. L'exemple següent afegeix el camp i a la taula testalter_tbl i defineix el tipus de dades:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Després d'executar l'ordre anterior, el camp i s'afegeix automàticament al final dels camps de la taula de dades.
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 cal especificar la posició del nou camp, es poden fer servir les paraules clau FIRST (que s'ha de definir a la primera columna) i AFTER field_name (que s'ha de definir després d'un camp determinat) que proporciona MySQL .
Proveu la següent instrucció ALTER TABLE i, després de l'execució correcta, utilitzeu SHOW COLUMNS per veure els canvis a l'estructura de la taula:
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;
Les paraules clau FIRST i AFTER només s'utilitzen a la clàusula ADD, de manera que si voleu restablir la posició d'un camp de taula de dades, heu d'utilitzar DROP per eliminar el camp i després ADD per afegir el camp i establir la posició.
Modifiqueu el tipus i el nom del camp
Si necessiteu modificar el tipus i el nom del camp, podeu utilitzar la clàusula MODIFY o CHANGE a l'ordre ALTER.
Per exemple, per canviar el tipus de camp c de CHAR(1) a CHAR(10), executeu l'ordre següent:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Amb la clàusula CHANGE, la sintaxi és molt diferent.Immediatament després de la paraula clau CHANGE hi ha el nom del camp que voleu modificar i, a continuació, especifiqueu el nom i el tipus de camp nous.Proveu l'exemple següent:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
Efecte d'ALTER TABLE sobre valors nuls i predeterminats
Quan modifiqueu un camp, podeu especificar si voleu incloure només o si voleu establir un valor predeterminat.
L'exemple següent especifica que el camp j NO és NULL i el valor per defecte és 100.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Si no establiu un valor predeterminat, MySQL establirà automàticament el camp a NULL per defecte.
Modifica el valor predeterminat del camp
Podeu utilitzar ALTER per canviar el valor predeterminat d'un camp; proveu l'exemple següent:
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)
També podeu utilitzar l'ordre ALTER amb la clàusula DROP per eliminar el valor predeterminat d'un camp, com a l'exemple següent:
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ó del tipus de taula de dades es pot fer mitjançant l'ordre ALTER i la clàusula TYPE.Proveu l'exemple següent, on canviem el tipus de la taula testalter_tbl a MYISAM:
Nota: Podeu utilitzar l'ordre SHOW TABLE STATUS per comprovar el tipus de taula.
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)
Modifica el nom de la taula
Si necessiteu modificar el nom de la taula de dades, podeu utilitzar la clàusula RENAME a la instrucció ALTER TABLE per fer-ho.
Proveu l'exemple següent per canviar el nom de la taula de dades testalter_tbl a alter_tbl:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
L'ordre ALTER també es pot utilitzar per crear i eliminar índexs a les taules MySQL, que tractarem en els propers capítols.
alterar altres usos
Modificar el motor d'emmagatzematge: modificar-lo a myisam
alter table tableName engine=myisam;
Elimina la restricció de clau estrangera: keyName és un àlies de clau estrangera
alter table tableName drop foreign key keyName;
La posició relativa del camp modificat: aquí nom1 és el camp que voleu modificar, tipus1 és el tipus original del camp, i podeu triar un de primer i després, que hauria de ser obvi, primer es col·loca primer i després és col·locat després del camp name2
alter table tableName modify name1 type1 first|after name2;
Esperem que l'article "Afegir diversos camps a MySQL amb ALTER TABLE? Explicació detallada de l'ordre 'MODIATE COLLECT'" compartit al blog de Chen Weiliang ( https://www.chenweiliang.com/ ) us sigui útil.
No dubteu a compartir l'enllaç d'aquest article: https://www.chenweiliang.com/cwl-495.html
