MySQL modifica afegir per augmentar múltiples posicions de camp? Explicació detallada de l'ús de la instrucció de columna de modificació

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;

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Tornar a dalt